ที่นี่เราจะดูเทคนิคแฝงบางอย่างของ C++ ที่เกี่ยวกับ STL
กำหนดค่า pairs ด้วย braces '{}' เราสามารถใช้กับ tuples ได้เช่นกัน
pair<int, int> my_pair = make_pair(10, 20);
pair<int, int> my_pair2 = { 10, 20 }; // ใช้ braces
pair<int, <char, int> > my_pair3 = { 10, { 'A', 20 } }; // complex pair
บางครั้งเราไม่จำ header ที่ต้อง include หรือลืมชื่อ header ในตอนนั้นเราสามารถใช้เทคนิคนี้เพื่อ include ทุก header ได้
#include <bits/stdc++.h>
C++ มีฟังก์ชัน GCD ในตัว (built-in) ฟังก์ชันนี้ไม่ค่อยมีชื่อเสียง ดังนั้นเราจึงไม่รู้จัก มันสามารถใช้ได้ดังนี้:
__gcd(a, b)
C++ มีฟังก์ชัน to_string() เพื่อแปลงชนิดข้อมูลต่างๆ เป็นสตริง สมมติเราต้องการทำให้ integer เป็น string หรือ float เป็น string เราสามารถใช้ฟังก์ชันนี้ได้
float x = 2.3654; string str = to_string(x);
เช่นเดียวกัน เพื่อทำงานย้อนกลับ คือแปลงจาก string เป็น integer เรามีฟังก์ชัน stoi()
string num = "256"; int x = stoi(num);
ถ้าเราประกาศตัวแปรบางตัวภายนอกฟังก์ชัน (global variables) แล้วมันจะเป็น static และค่าเริ่มต้นจะเป็น 0
ถ้าเราประกาศอาร์เรย์แบบปกติ ค่าจะเป็น garbage value ถ้าต้องการประกาศอาร์เรย์ที่ทุกตัวเป็น 0 การประกาศจะเป็นแบบนี้:
int arr[10] = {};
เราสามารถกำหนดค่าทั้งอาร์เรย์ด้วยค่าที่กำหนดไว้ล่วงหน้าได้ด้วย memset ถ้าต้องการ initialize อาร์เรย์ด้วยค่า 5 ทุกตัวจะเก็บ 5 สามารถทำได้โดยเขียน:
int arr[10]; memset(arr, 5, sizeof(arr));