STL list - gleiche löschen



  • hallo,

    ich habe eine struktur

    struct mysearch
    {
    	int a;
    };
    

    nun habe ich eine Liste von mehreren solcher Elemente, und will doppelte löschen:

    list<mysearch> suchliste;
    	//(...)
    
    	list<mysearch>::iterator ke;
    	for( ke = suchliste.begin(); ke != suchliste.end(); ke++ )
    	{		
    		list<mysearch>::iterator b;
    		b = ke;
    		b++;
    		for(; b!=suchliste.end(); b++)
    		{
    			if( equal( (*ke).a, (*b).a) )
    			{
    				b = suchliste.erase( b );
    			}
    		}		
    	}
    

    es ist zwar sehr unschön ( v.a. Z 7-9 , <- wie kann man das besser machen ? ), aber ich denke es sollte funktionieren oder hab ich was übersehen? Tut es aber nicht:

    Fehlermeldung
    "list iterators incompatible"

    bitte um hilfe 🙂

    gruß
    eurohasi



  • du hast scheinbar die Suchfunktion nicht benutzt - genau das selbe Thema hatten wir vor wenigen Tagen:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-226137.html


Anmelden zum Antworten