Ich baue Objekt-System für meine Anwendung. Jetzt habe ich einen solchen Code:Map keys sorting
std::map<std::string, Object*> mObjects;
Die Idee ist es, jedes Objekt der Klasse Object
(Call update
), aber in einer bestimmten Reihenfolge zu aktualisieren.
In jedem Objekt befindet sich ein Element int z_index;
. Wie kann ich die Karte aufgrund dieses Indexes sortieren (übrigens, Indizes könnten gleich sein)?
Meine erste Idee war: add-ID in den Schlüsselnamen wie:
Object *temp = /* ... */
temp->z_index = 5;
temp->name = "test";
mObjects[temp->z_index + temp->name] = temp;
Aber mit diesem Code Ich habe verloren Objekte mit Namen zugreifen.
kann sein 'std :: multiset' konnte auch eine Wahl sein. – Naveen
@Naveen, meinst du 'std :: multimap'? – Nim
@Naveen: Keiner der STL-Container unterstützt gleichzeitige Sortierprädikate. Boost Multi-Index ist die beste Wahl, wenn OP 2 Container nicht warten möchte. – jweyrich