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

C++ Discussion :

[list] boucle de vidage


Sujet :

C++

  1. #1
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Points : 661
    Points
    661
    Par défaut [list] boucle de vidage
    hey hey,

    j ai une std::list dont la boucle de parcours (pour le delete) ne joue pas correctement.

    Si j ai un element dans la liste, lors du premier passage tout va bien mais la condition de sortie est ma l evalué et je tente de supprimer un auter objet inexistant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(l_itProcess=m_ProcessList.begin();l_itProcess!=m_ProcessList.end();l_itProcess++)//read list
    {						
    	//deleting process in list				
    	delete  (*l_itProcess);
    	m_ProcessList.erase(l_itProcess);
    }
    des idées ?

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut


    http://c.developpez.com/faq/cpp/?pag...ssion_elements

    Mais pourquoi ne pas faire un m_ProcessList.clear() après la boucle s'il faut effacer tous les éléments ? Pourquoi ne pas stocker des boost::shared_ptr si ce sont des variables allouées dynamiquement ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Points : 116
    Points
    116
    Par défaut
    Essaies de parcourir ta liste en sens inverse (du dernier au 1er).
    Je pense que ça devrait mieux fonctionner .

  4. #4
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Points : 661
    Points
    661
    Par défaut


    tout dans la comme d hab !

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Citation Envoyé par Sifo-Dyas
    Essaies de parcourir ta liste en sens inverse (du dernier au 1er).
    Je pense que ça devrait mieux fonctionner .
    Je ne suis pas sûr que ça change grand chose, ou alors j'ai raté un truc ?

    MAT.

  6. #6
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Points : 661
    Points
    661
    Par défaut
    Citation Envoyé par Sifo-Dyas
    Essaies de parcourir ta liste en sens inverse (du dernier au 1er).
    Je pense que ça devrait mieux fonctionner .
    ptet qu avec cette methode je tomberais sur l'addresse de base du conteneur en remontant et pas dans le vide en decendant. Mais je prefère de loin travaillé propre avec la methode conseillé par Laurent Gomila.

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Aller en sens inverse ne changera rien, après effacement du dernier élément on se retrouverait tout autant à pointer sur n'importe quoi.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Points : 116
    Points
    116
    Par défaut
    ZaaN a écrit :
    ptet qu avec cette methode je tomberais sur l'addresse de base du conteneur en remontant et pas dans le vide en decendant. Mais je prefère de loin travaillé propre avec la methode conseillé par Laurent Gomila.
    tu as raison.

    ps : Je développe principalement avec les MFC et lorsque je dois détruire un tableau ou une liste de pointeur j'utilise cette méthode, qui marche très bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Listes,boucles à trier
    Par Invité dans le forum Langage
    Réponses: 13
    Dernier message: 26/07/2010, 16h35
  2. VBS listes / boucles
    Par hir0. dans le forum VBScript
    Réponses: 0
    Dernier message: 26/05/2009, 10h54
  3. [langage] Liste + Boucle
    Par Girzi dans le forum Langage
    Réponses: 13
    Dernier message: 31/10/2006, 19h11
  4. Réponses: 15
    Dernier message: 24/05/2005, 08h34
  5. Comment initialiser une liste de composants avec une boucle ?
    Par EricSid dans le forum Composants VCL
    Réponses: 5
    Dernier message: 06/04/2005, 18h46

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