Standard library menyimpan kumpulan container dan utilitas yang telah teruji. Di section ini kita memakai string, vector, map, set, optional, variant, dan span, lalu merangkum kriteria memilih container yang tepat untuk tiap kebutuhan program.

# Pengenalan Standard Library

Kenali standard library C++: container, algorithm, iterator, utility, dan I/O, serta alasan mengapa kita memakainya di hampir setiap program.

Buka →
# std::string dan string_view

Kuasai sisi praktis std::string: konversi string dan angka, keluarga find, substr, serta posisi string_view sebagai jendela baca-saja.

Buka →
# std::array dan std::vector

Operasi lanjutan std::array dan std::vector: fill, swap, insert, erase, perbedaan push_back dan emplace_back, serta kapan masing-masing dipakai.

Buka →
# std::deque dan std::list

Kenali std::deque yang cepat di kedua ujung dan std::list yang lincah di tengah, lengkap dengan perbandingan terhadap std::vector.

Buka →
# std::stack dan std::queue

Gunakan adapter std::stack (LIFO) dan std::queue (FIFO) untuk pola tumpukan dan antrean, disertai pengantar std::priority_queue.

Buka →
# std::set dan std::multiset

Simpan nilai unik yang selalu terurut dengan std::set, dan izinkan duplikat dengan std::multiset: insert, find, count, dan erase.

Buka →
# std::map dan std::multimap

Petakan kunci ke nilai dengan std::map: operator[] vs at() vs insert, iterasi pair dengan structured bindings, dan multimap untuk banyak nilai per kunci.

Buka →
# std::unordered_set

std::unordered_set: keanggotaan O(1) rata-rata lewat hash, urutan iterasi yang tidak ditentukan, dan perbandingannya dengan std::set.

Buka →
# std::unordered_map

Petakan kunci-nilai dengan akses O(1) rata-rata: contains, count, find, emplace, dan insert_or_assign pada std::unordered_map.

Buka →
# std::pair dan std::tuple

Bungus beberapa nilai dalam satu objek dengan std::pair dan std::tuple: first/second, std::get, make_tuple, tuple_size, dan structured bindings.

Buka →
# std::optional

Nyatakan 'mungkin tidak ada nilai' dengan std::optional: has_value, operator bool, value vs value_or, dan perbandingannya dengan sentinel.

Buka →
# std::variant

Simpan salah satu dari beberapa tipe dengan aman lewat std::variant: holds_alternative, get_if, dan std::visit dengan lambda.

Buka →
# std::any

Tampung tipe apa pun dengan std::any: any_cast, pemeriksaan has_value dan type(), biaya runtime, dan kapan memilih any dibanding variant.

Buka →
# span

Jendela non-owning ke data kontigu lewat std::span: satu parameter fungsi menerima vector, std::array, dan array C, plus subspan untuk potongan tanpa salinan.

Buka →
# std::chrono

Kuasai penanganan waktu C++ lewat std::chrono: tiga konsep inti duration, clock, dan time_point, literal waktu C++14, konversi antar satuan, kalender C++20, hingga pengantar time zone.

Buka →
# std::function dan Type Erasure

Simpan callable apa pun — function pointer, lambda, functor — dalam satu wadah std::function: type erasure, cek keadaan kosong, biayanya, dan pola callback registry.

Buka →
# Regex dengan std::regex

Cari, validasi, dan ganti pola teks dengan std::regex: regex_match, regex_search, regex_replace, regex_iterator, pilihan grammar, dan kapan parsing manual lebih tepat.

Buka →
# bitset

Kelola deret bit berukuran tetap dengan std::bitset: set, reset, test, flip, count, operasi bitwise, konversi ke string, dan use case flag.

Buka →
# Numeric Algorithms

Fungsi perhitungan dari header <numeric>: gcd dan lcm untuk bilangan bulat, midpoint (C++20) untuk titik tengah tanpa luapan, plus ringkasan seluruh isi header.

Buka →
# Utility Functions

Fungsi utilitas dari <utility> dan <algorithm>: std::swap, std::exchange, std::min/max/clamp, helper std::pair, dan pratinjau std::move.

Buka →
# Memilih Container yang Tepat

Kerangka keputusan memilih container: tabel perbandingan seluruh container yang dipelajari, pertanyaan kunci, demo satu data dengan empat pilihan berbeda, dan penutup Section Standard Library.

Buka →