De ce contează?
Ai un dulap cu zeci de sertare, fiecare cu o etichetă. Nu trebuie să le ții
alfabetic și nici nu cauți pe rând prin toate: te uiți la etichetă și mâna merge
direct la sertarul potrivit, dintr-o mișcare. Nu contează că sertarele sunt
amestecate — ce contează e că găsești instant ce vrei. Exact așa lucrează
unordered_map.
Ce este
unordered_map este un dicționar care leagă o cheie de o valoare, la fel
ca map. Diferența stă în mecanism: unordered_map folosește o funcție hash
ca să arunce fiecare cheie într-un coș (bucket), apoi merge direct acolo. Nu
compară chei pe rând și nu le ține sortate — le „aruncă" după hash.
De aici cele două proprietăți esențiale:
- Acces, inserare și căutare în O(1) mediu — mai rapid decât
map, care e O(log n). - Fără nicio ordine — când parcurgi cheile, ies într-o ordine impredictibilă.
map ține cheile sortate și garantează O(log n) chiar și în cel mai rău caz.
unordered_map e mai rapid în medie (O(1)), dar pierde ordinea și, pe chei
alese advers, poate degrada la O(n). Regula simplă: dacă nu-ți pasă de ordine și
vrei viteză, alegi unordered_map; dacă ai nevoie de chei în ordine crescătoare,
alegi map.