eigene Objekte im Container
-
Guten Tag,
bisher habe ich nur mit den Standarttyen innerhalb von Containern gearbeitet. Nun wollte ich eine Verwaltung mit eigenen Objekten versuchen. Wie verhält sich das zum Beispiel beim sortieren? Wird nach dem Wert des ersten Members meines Objekts sortiert? Der Container hat ja eigentlich keine Ahnung vom internen Aufbau meines Objekts.
Hoffe das kann mir jemand näher bringen.Grüße,
<der andere>
-
Hi,
also bei unsortierten Containern ist das ganz einfach: Deine Klasse muss allerdings einen Default- und einen Copy-Konstruktor besitzen (wenn Du keinen Construktor selbst definiert hast, macht das der Compiler für Dich).
Bei sortierenden Containern muss er einen Vergleichsoperator ("kleiner als") finden .. und den kannst Du selbst definierne und übergeben.
Hier gibt's ein Beispiel.Gruß,
Simon2.
-
Huhu Simon,
ich danke dir mal wieder
Viele Grüße
-
hat sich erledigt...
-
Testklasse und Beispiele in Containern:
http://www.henkessoft.de/C++/C++ Fortgeschrittene/C++_Fortgeschrittene.htm#2.2._Unsere_Testklasse_loggt_mit
-
Du kannst statt den op< zu definieren auch eine Vergleichs-Funktionsklasse erstellen (Comparator) und dem sortierenden Container als Templateargument mitgeben. Der nimmt dafür defaultmäßig std::less<T> was wiederum einfach auf den op< zugreift, wodurch die Methode mit dem op< auch funktioniert.