std::map Schlüssel in "richtiger" Reihenfolge ausgeben
-
Hallo

Wie kann ich dafür sorgen, dass die Schlüsselelemente in meiner map in der Reihenfolge ausgegeben werden, in der sie angehangen wurden. Beispiel:
ich füge 1-9 als schlüssel hinzu
ich füge 10 als schlüssel hinzuausgabe
1
10
2
3
4
...Wie kann ich die Sortierung zumindest beim ausgeben umgehen (wenn ich sie ganz umgehen würde, würde die map ja keinen Sinn mehr machen
)?
-
gar nicht - die map kannst du nicht mehr "desortieren"

(vielleicht hast du für deinen Zweck den falschen Container ausgesucht)
-
Ich meine, es gab da irgendeinen iterator der die map dann "richtig" ausgegeben hat. Ich bin mir da ganz sicher
Oder verwechsel ich da etwas?
-
Du verwechselst da was.
-
Das was du machen kannst, ist sortiert einfügen. D.h. nicht erst beim ausgeben, sonder wenn du jedes Map-Element einfügst, tust du das an der richtigen Stelle. Vorallem funktioniert das ausgeben auch schneller.
Ich weiß aber auch nicht, ob std::sort() für std::map geht.

-
Ganz sicher - die Elemente der map werden in einem binären Suchbaum untergebracht, da hast du garantiert keine Möglichkeit mehr, die Reihenfolge zu rekonstruieren, in der sie eingefügt wurden.
PS: Eventuell ist ja auch nur dein Sortierkriterium "kaputt"
