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 nix 😕

    fpTemp = 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 🙂


Anmelden zum Antworten