Eigene Klasse auf map<> legen



  • Hi!

    Ich versuche, eine map zu machen, bei der ich eine Klasse (Vector), die ich selbst geschrieben habe, reinschreibe:

    map<Vector, unsigned> myMap;

    So soll die map eigentlich aussehen. Wenn ich so versuche zu kompilieren, bekomme ich einen Fehler, dass etwas an meiner Vector-Klasse fehlt, damit man ein Objekt dieser Klasse in die map einfügen kann. Wisst ihr, auf was ich achten muss/was ich zu meiner Klasse hinzufügen muss, damit das geht? Und wie das geht?

    Hab rausgefunden, dass es schon geht, wenn ich meine map so mache:
    map<Vector*, unsigned> myMap;
    aber mit dem Zeiger ist die map schwieriger zu handhaben.

    Wär super, wenn ihr mir sagen könntet, wie ich meine Klasse in die map kriege.

    Thx. Nick.



  • Du musst meines Wissen einen Standardkonstruktor und einen operator< haben, damit die Objekte sortiert werden können. Außerdem wahrscheinlich noch einen operator= und einen Kopierkonstruktor, aber die werden ja sowieso automatisch generiert!

    Ansonsten poste mal die Fehlermeldung.


Anmelden zum Antworten