IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

std::list non incrementable


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Par défaut std::list non incrementable
    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....)

    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);
    }
    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!

    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.

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Enlève le ++i, tu ne devrais plus avoir de problème.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 20
    Par défaut
    Et en rajoutant un else
    {
    it++;
    }
    sinon on reste bloqué dans la boucle!
    Et c'est bon,tout marche, merci beaucoup!

    Ils sont tous trop fort chez developpez.com!!

Discussions similaires

  1. [C++][std::list] Reinterpret cast
    Par chronos dans le forum SL & STL
    Réponses: 7
    Dernier message: 18/08/2005, 17h04
  2. [dev-C++]std::list<tree_node<T>*> iterator;
    Par jmv dans le forum Dev-C++
    Réponses: 7
    Dernier message: 06/05/2005, 13h14
  3. acceder au n iéme element d'une liste std::list
    Par sorari dans le forum SL & STL
    Réponses: 4
    Dernier message: 23/03/2005, 15h21
  4. [std::list][find_if] problème avec mes foncteurs
    Par n!co dans le forum SL & STL
    Réponses: 12
    Dernier message: 04/02/2005, 11h56
  5. Recherche dans une liste non trié
    Par Oberown dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 13/09/2004, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo