doppelte Einträge aus std::vector löschen???
-
Moin,
wie kann ich doppelte Einträge aus einem std::vector löschen?
Habe einen vector<MyStruct>. MyStruct sind mehrere int's. In Abhängigkeit von 2 int's sollen nun Einträge gelöscht werden. Wird aber nixfpTemp = fpVect; fpVect.clear(); while( fpTemp.size() > 0 ) { fp = fpTemp.at(0); fpVect.push_back(fp); chk1 = fp.x_idx; chk2 = fp.y_idx; for( std::vector<FRAME_PTS>::iterator it = fpTemp.begin(); it != fpTemp.end(); ++it ) { if( chk1 == it->x_idx && chk2 == it->y_idx ) it = fpTemp.erase(it); } }
kurze Erklärung: der eigentliche vector wird in einen TempVector kopiert. Dann den ersten Eintrag nehmen, in den ursprünglichen vector packen, und aus dem temp dann alle gleichen Einträge löschen. usw, usw, ...
Los gehts aber schon damit, das nach:fpVect.push_back(fp);
fpVect leer ist
Wo ist mein Denk -/ oder sonstiger Fehler?
grüssle
.Edit: Fehler gefunden
for( std::vector<FRAME_PTS>::iterator it = fpTemp.begin(); it != fpTemp.end(); ++it ) { if( fpTemp.size() < 1 ) break; if( chk1 == it->x_idx && chk2 == it->y_idx ) it = fpTemp.erase(it); }
-> done
-
Hallo
Bitte beim nächsten Mal drauf achten : Du hattest keine Frage zu Builder-spezifischen Komponenten und Erweiterungen. Deine hätte besser ins C++ Forum gepasst.
bis bald
akari
-
hast Recht, akari,
war wohl Macht der Gewohnheit
werde versuchen es beim nächsten Mal zu berücksichtigen.grüssle