std::vector und iterator/index Gültigkeit
-
Hallo, ich habe ein Problem mit dem vector-container. Und zwar fülle ich den Vector mit Zeigern die auf Objekte verweisen.
Ist es möglich, dass durch eine neue Zeiger-Zuweisung die Iteratoren/Indizes nicht mehr gültig sind?
Sobald ich nämlich folgendes mache:values[index] = value;stürzt mein Programm ab ("vector subscript out of range").
Werte auslesen und hinzufügen funktioniert tadellos. Gelöscht werden keine Elemente.
-
Problem scheint eher zu sein, dass deine Variable
indexeinen Wert ausserhalb des gültigen Bereichs hat. Schon mal mit dem Debugger geschaut, welchen Wert die Variable hat?Grüssli
-
Stimmt, mir ist da ein gewaltiger Gedankenfehler unterlaufen. Um es kurz zu machen: Die Objekte die die Indizes speichern sind statisch der vector aber nicht. Mit dem Ergebnis dass bei mehreren Instanzen natürlich nur Murks rauskommen konnte.
Das Ändern eines Zeigers im Vektor scheint auch nicht wie ich angenommen hatte die Indizes zu ändern.