Objekte in set/unordered_set, welche sich (und damit die Relationen) verändern...



  • Hi,

    habe eine Frage bezüglich den Nebeneffekten von sich ändernden Objekten in sets/unordered_sets. Angenommen man hat eine Klasse foo in einem Set, etwa std::set<foo> . Der (logische) Wert von einem foo kann von aussen geändert werden, wodurch aber eventuell Relationen à la a < b (für a und b vom Typ foo ) plötzlich den drehen können.

    Konkret geht es um Smart Pointer auf Objekte in einem Memory Pool, welcher die Objekte selbst jederzeit umkopieren darf (weshalb sich die Pointerwerte ändern können).

    Gehe ich richtig in der Annahme, dass ich die Objekte dann nicht in Sets speichern darf? Muss ich einen std::vector nehmen? Ich brauche keine Ordnung der Elemente und sie sollten alle unique sein. Und ich habe mich schon gefreut wegen std::unordered_set etc. 😞

    MfG



  • Du könntest Sie entnehmen, ändern und wieder eintüten ...
    siehe auch Are Set Iterators Mutable or Immutable?

    Gruß
    Werner



  • Gehe ich richtig in der Annahme, dass ich die Objekte dann nicht in Sets speichern darf?

    Ja.


Anmelden zum Antworten