C++ - STL-map mit einer benutzerdefinierten Klasse als zweite Art
Ich würde gerne eine Karte mit einem int-und meiner eigenen Klasse. Gibt es eine Möglichkeit, dies zu tun?
map<int, MyClass> myMap;
Wenn nicht, wie gehe ich vor, dies zu erreichen? Im Grunde möchte ich eine id(oder vorzugsweise ein enum
) zu Punkt zu meiner eigenen Klasse. In den meisten anderen Sprachen, dies wäre eine einfache hash.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
MyClass
werden default - und copy - bebaubar, so dass es erstellt werden können (wenn Sie, z.B.,myMap[5]
) kopiert und in die Karte.Ja die einzige Bedingung sind:
So müssen Sie nur sicherstellen Sie, dass Sie Objekt kopieren constructable, so dass es kopiert werden kann in die Karte.
sollten Sie verwenden, wie diese
typedef std::map myMapType;
myMapType myMap;
Aber seien Sie vorsichtig, wenn Sie Ihre Klasse in diesem, wie wenn Sie legen Sie mehr als einmal für den gleichen Schlüssel, Sie wird nie eine Ankündigung :
Call myMapType::iterator itr myMap.suchen(Schlüssel) , je nach Rückgabetyp und Ihr Programm requirments können Sie procced.
Wie klug, versuchen avid auf ein element mithilfe der [] - operator wie
Als nicht Sie eine Fehler von der Karte selbst gab es stellt fest eingefügt-Taste 10