Unterschied zwischen hash_map und unordered_map?
Vor kurzem habe ich entdeckt, dass die Implementierung der hash-Tabelle in C++ aufgerufen wird unordered_map
.
Als ich aufschaute, warum Sie denn nicht einfach mit hash_map
ich entdeckt, dass offenbar gibt es Kompatibilitätsprobleme mit der Umsetzung der hash_map
dass unordered_map
aufgelöst wird (mehr darüber hier).
Dass die wiki-Seite nicht viel mehr Informationen geben, so dass ich Frage mich, ob jemand wusste, dass einige der Probleme, mit hash_map
dass unordered_map
behebt.
InformationsquelleAutor der Frage kidnamedlox | 2009-10-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da gab es keine hash-Tabelle, definiert im C++ - standard-Bibliothek, verschiedene implementors von standard-Bibliotheken bieten würde, eine nicht-standard-hash-Tabelle oft mit dem
hash_map
. Da diese Implementierungen nicht geschrieben wurden, nach einem standard, den Sie alle hatten feine Unterschiede in Funktionalität und Leistung garantiert.Beginnend mit C++11 eine hash-Tabelle Implementierung wurde Hinzugefügt, um die C++ - standard-Bibliothek standard. Es wurde beschlossen, einen alternativen Namen für die Klasse, um zu verhindern, dass Kollisionen mit diesen nicht-standard-Implementierungen und um zu verhindern, dass versehentliche Verwendung der neuen Klasse von Entwicklern hatte
hash_table
in Ihrem code.Den gewählten alternativen Namen ist
unordered_map
was wirklich ist, mehr beschreibende als es Hinweise auf die Klasse map-Schnittstelle und der ungeordneten Natur Ihrer Elemente.InformationsquelleAutor der Antwort Stef