PDA

Visualizza la versione completa : [C++] Iteratori di list


Willie71
12-09-2011, 15:43
Ciao a tutti, ho un probolema con le list in stl. Ho due liste e devo cancella re tutti gli ementi della prima lista che non sono contenuti nella seconda. Ho realizzato il seguente codice ma ho un problema che quando trovo l'elemento uguale tra le list e cancello l'elemento dalla prima list poi l'iteratore giustamente viene puntato sull'elemento successivo a quello cancellato ma essendo dentro un while l'istruzione ++iterator mi fa andare avanti l'iteratore e quindi non confrondandomi l'elemento. Un po' complicato :-)

Grazie a tutti



while( it_listA != listA.end() )
{
listB = vFileDest.begin();

while( listB != vFileDest.end() )
{

if( _tcscmp( listB->cName, it_listA->cName ) == 0 )
{
listA.erase ( it_listA );
break;
}

++listB;
}

++it_listA; //Questo mi rimanda avanti l'iteratore quindi quando cancello mi fa saltare
}

Loading