Załóżmy, że chciałbym zmapować dane za pomocą ciągu znaków jako klucza. Jaki kontener powinienem wybrać, map
lub unordered_map
? unordered_map
zajmuje więcej pamięci, więc załóżmy, że pamięć nie jest problemem, a problemem jest szybkość.Jak wybrać między mapą a mapą nieuporządkowaną?
unordered_map
powinien ogólnie dawać średnią złożoność O (1) w najgorszym przypadku O (n). W jakich przypadkach może dojść do O (n)? Kiedy map
uzyskuje większą oszczędność czasu niż unordered_map
? Czy zdarza się, gdy n jest małe?
Zakładając, że użyłbym STL unordered_map
z domyślnym VS hasera. mapa. ciąg jest kluczem.
Jeśli mam zamiar powtórzyć elementy zamiast dostępu do pojedynczego elementu za każdym razem, czy powinienem preferować map
?
Czy chcesz sortować elementy w mapowaniu? –
Która implementacja 'unordered_map' używa więcej pamięci? –
Zawsze masz narzut pamięci w mapie mieszania, choć zwykle jest to pomijalne. – ypnos