Gibt es einen Vorteil der Verwendung von map over unordered_map im Falle von trivialen Schlüsseln?

Einen letzten Vortrag über unordered_map in C++ machte mir klar, dass ich verwenden soll unordered_map für die meisten Fälle, wo ich map vor, weil der Wirkungsgrad von lookup ( amortisiert O(1) vs. O(log n) ). Die meisten Male, die ich eine Karte benutze ich entweder int's oder std::strings als Schlüssel, damit habe ich keine Probleme mit der definition der hash-Funktion. Je mehr ich darüber nachdachte, desto mehr kam ich zu erkennen, dass ich keine finden Grund mit einer std::map im Falle der einfachen Typen über eine unordered_map -- ich warf einen Blick auf die Schnittstellen, und fand keine signifikanten Unterschiede auswirken würden mein code.

Daher die Frage - gibt es tatsächlich einen Grund für die Verwendung std::map über unordered map im Falle der einfachen Typen wie int und std::string?

Ich verlange von einem streng Standpunkt der Programmierung-ich weiß, dass es nicht komplett als standard, und es kann zu Problemen mit der Portierung.

Ich auch erwarten, dass einem die richtigen Antworten sein könnten "es ist effizienter für kleinere Datenmengen"weil ein kleiner overhead (stimmt das?) - daher möchte ich beschränken, die Frage zu Fällen, in denen die Anzahl der keys ist nicht-trivial (>1 024).

Edit: duh, ich vergaß das offensichtliche (danke GMan!) -- ja, Karte ist bestellt, natürlich-ich weiß, dass, und bin auf der Suche nach anderen Gründen.

InformationsquelleAutor der Frage Kornel Kisielewicz | 2010-02-04

Schreibe einen Kommentar