Bonjour,
Pour mon projet en C++ je suis amené à créer une liste chainée, j'utilise donc une std::list.
Je fais une boucle for pour parcourir toute ma liste, et je veux supprimer un noeud, n'importe lequel, il peut être premier, dernier ou n'importe où...
(bon la je mets un tout petit bout de code, qui supprime tout....)
Mais lorsque j'arrive au dernier j'ai un problème, l'itérateur n'est plus valable, bla,bla...On ne peut pas l'incrémenter!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for(std::list<Plat*>::iterator it = PlatList.begin(); it != PlatList.end();i++) { it = PlatList.erase(it); }
J'ai fais quelques recherches, j'ai même trouvé des postes similaires aux miens sur des forums anglais qui donnaient des bouts de solutions, mais je n'y arrive pas...
Alors, quelle est la bonne syntaxe?
Faut il enlever le i++?
J'ai tenté de tester (if it == PlatList.end()) mais je ne sais pas que faire dans ce cas là...
Voila la situation et la raison pour laquelle je demande un petit éclaircissement!
Merci à vous.
Partager