Załóżmy, że chciałbym zmapować dane z ciągiem znaków jako kluczem. Jaki pojemnik powinienem wybrać, map
czy unordered_map
? unordered_map
zajmuje więcej pamięci, więc załóżmy, że pamięć nie jest problemem, a problemem jest szybkość.
unordered_map
powinien generalnie dawać średnią złożoność O (1) z najgorszym przypadkiem O (n). W jakich przypadkach doszłoby do O (n)? Kiedy można map
uzyskać większą oszczędność czasu niż unordered_map
? Czy to się dzieje, gdy n jest małe?
Zakładając, że użyłbym STL unordered_map
z domyślnym haser Vs. mapa. ciąg jest kluczem.
Jeśli mam zamiar iterować elementy, zamiast uzyskiwać dostęp do pojedynczego elementu za każdym razem, czy wolę map
?