Onkel Schuppig
Erfahrenes Mitglied
Hi.
Zur ursprünglichen Frage #1 kann ich noch berichten:
Wird ein Vektor in seiner Größe modifiziert, werden vorher ermittelte Iteratoren ungültig.
Die Ursache liegt in der internen (unbekannten) Speicherverwaltung des Vektors. Was macht der Vektor, wenn ein Element gelöscht wird? Schiebt er die restlichen Elemente einen Platz nach links?
Am besten brichst du nach dem erase() die Schleife ab und fängst die Suche von vorn an, also Anfangsiterator wieder auf .begin() setzen usw, weil auch .begin() sich verändert haben könnte.
Zur ursprünglichen Frage #1 kann ich noch berichten:
Wird ein Vektor in seiner Größe modifiziert, werden vorher ermittelte Iteratoren ungültig.
Die Ursache liegt in der internen (unbekannten) Speicherverwaltung des Vektors. Was macht der Vektor, wenn ein Element gelöscht wird? Schiebt er die restlichen Elemente einen Platz nach links?
Am besten brichst du nach dem erase() die Schleife ab und fängst die Suche von vorn an, also Anfangsiterator wieder auf .begin() setzen usw, weil auch .begin() sich verändert haben könnte.