Thynex Academy
Ծրագրավորման ուսումնական գործիքներ
Գործիքների ցանկ

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) — բանալիները չտեսակավորված