STL Unordered Containers
unordered_set, unordered_map (hash table) — տեսողականորեն դիտեք bucket-ները, hash function-ը, collision chain-ները և rehash-ը՝ միջին O(1), worst O(n)։
std::unordered_set — hash-table-ի վրա հիմնված եզակի բանալիների կոնտեյներ
Բանալիները բաշխվում են bucket-ների զանգվածում։ Տեղը հաշվվում է
hash(key) mod N։ Միջին դեպքում O(1), worst-case՝ O(n) (բոլոր բանալիները մեկ bucket-ում)։- ✓ insert / find / erase — միջին O(1)
- ✓ load_factor > 1 → rehash (×2 buckets, redistribute)
- ✗ Տեսակավորություն չկա — iterator-ը bucket-ով անցնում է
std::unordered_map — hash-based բանալի → արժեք
Նույն hash table, սակայն chain-ի տարրերը՝ (key, value) զույգեր են։ Lookup, insert, erase միջին O(1) ըստ key-ի։
- ✓ Lookup ըստ բանալու — միջին O(1)
- ✓ Insert / erase — միջին O(1) + occasional rehash
- ✗ Range queries չկան (vs std::map) — բանալիները չտեսակավորված
Stagger insert
0 / 0