Rebonjour!
en fait mes besoins on changés et je me retrouve coincé. Si je reprend ce bout de code (prédemment mis sur la premiere page) :
void ShowList(list<int>& L)
{
list<int>::iterator I;
for(I=L.begin();I!=L.end();I++)
{
cout << "element : " << *I << endl;
L.remove(*I);
}
}
int main()
{
list<int> L;
L.push_front(5);
L.push_back(7);
L.push_front(19);
L.push_back(6);
ShowList(L);
return 0;
}
J´ai simplement déplacé mon remove dans la boucle, mais voila que ça ne marche pas... ça me fais pareil que le erase.... Pourtant je supprime l´élément sur lequel l´itérateur pointe et je passe au suivant, n´est ce pas ainsi que list::remove fonctionne?
J´ai ensuite essayé avec ma structure (a la place du int dans lexemple du dessus), et la, je ne peu meme pas écrire "...".remove(*I); que jobtient ce message d´erreur :
file.cpp:49: instantiated from here
C:/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../.
./../include/c++/3.4.4/bits/list.tcc:181: error: no match for ´operator==´ in ´(&__first)->std::_List_iterator<_Tp>::operator* [with _Tp = SDL::get_bal]() == __value´
Ca me trouble assez et c´est surtout génant, je vous remercie d´avance pour d´éventuelles réponses 