Ich habe einen Vektor, der Elemente enthält, die entweder aktiv oder inaktiv sind. Ich möchte, dass die Größe dieses Vektors bei Leistungsproblemen klein bleibt. Daher möchte ich, dass Elemente, die als inaktiv markiert wurden, aus dem Vektor gelöscht werden. Ich habe versucht, dies während der Iteration zu tun, aber ich bekomme den Fehler "Vector Iteratoren inkompatibel".Element aus Vektor während der Iteration entfernen?
vector<Orb>::iterator i = orbsList.begin();
while(i != orbsList.end()) {
bool isActive = (*i).active;
if(!isActive) {
orbsList.erase(i++);
}
else {
// do something with *i
++i;
}
}
diese Frage im Zusammenhang Siehe: http://stackoverflow.com/questions/347441/erasing-elements-from-a-vector – Naveen