Es scheint von meinen einfachen Tests, aber ich frage mich, ob das garantiert ist?
Gibt es Bedingungen, unter denen die Bestellung nicht garantiert werden kann?
Bearbeiten : Der Fall, an dem ich besonders interessiert bin, ist, wenn ich eine Karte mit einer großen Anzahl von Einträgen bevölke. Ist die Reihenfolge des Iterators bei mehreren Durchläufen meiner ausführbaren Datei gleich? Was passiert, wenn die Einträge in einer anderen Reihenfolge eingefügt werden?
Ja, es behält eine interne Reihenfolge bei, so dass die Iteration über einen Satz, der sich nicht ändert, immer derselbe sein sollte. Von hier :
Intern die Elemente in der Karte sind von unterer zu höherer Schlüssel sortiert Wert nach einem bestimmten strengen schwach Bestellkriterium festgelegt Konstruktion.
std::map
ist ein sortierter Container, also, ja, die Reihenfolge ist garantiert (das gleiche wie die Reihenfolge, die Sie implizit oder explizit im Konstruktor verwenden). Rechnen Sie nicht für den populären (wenn auch noch nicht-alten) hashmap
- es hat in vielen Fällen sehr viele Vorteile gegenüber std::map
, aber nicht eine vorhersagbare Reihenfolge der Iteration!
std :: map ist eine sortierte Sammlung
und du müsstest den weniger als operator definieren
Stellen Sie sich vor m ist eine Karte vom Typ T: