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 :

[STL] multimap : 2e question


Sujet :

SL & STL C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 17
    Par défaut [STL] multimap : 2e question
    Bonjour,

    Voici un nouveau soucis en ligne directe de mon précédent post :
    Plus qu'un long discours, voici mon code "très épuré" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for(itmmSomEtiq = mmSomEtiq.begin() ; itmmSomEtiq != mmSomEtiq.end() ; itmmSomEtiq++) {
    ...
       for(itmmSomEtiq2 = mmSomEtiq.begin() ; itmmSomEtiq2 != mmSomEtiq.end() ; itmmSomEtiq2++) {
          if(test) {
             mmSomEtiq.erase(itmmSomEtiq2++);
          }
       }
    }
    Or il semble que le premier itérateur ne prenne pas en compte la suppression faite par le second.

    Auriez-vous une idée pour résoudre mon problème.
    Solution technique ou algorithmique possible.

    Olivier14

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Utilise erase_if, ce sera plus simple

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 17
    Par défaut
    Mon problème réside surtout dans le fait que l'itérateur itmmSomEtiq est invalidé par le erase suivant.

    Olivier14

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Un erase sur un multimap n'invalide que les itérateurs pointant sur l'élément supprimé. Donc le seul moment où itmmSomEtiq peut être invalidé c'est quand il est égal à itmmSomEtiq2, cas que tu peux traiter séparément.

Discussions similaires

  1. STL Questions basiques
    Par observ dans le forum SL & STL
    Réponses: 9
    Dernier message: 03/09/2006, 06h10
  2. STL Multimap et Objet en cle
    Par radium dans le forum SL & STL
    Réponses: 2
    Dernier message: 18/01/2006, 13h58
  3. Question sur les multimaps
    Par Chii-san dans le forum SL & STL
    Réponses: 4
    Dernier message: 08/11/2005, 09h08
  4. STL : utilisation d'une multimap
    Par romeo9423 dans le forum SL & STL
    Réponses: 7
    Dernier message: 18/08/2005, 07h56
  5. [debutant STL] question sur les vectors
    Par killerjeff dans le forum SL & STL
    Réponses: 13
    Dernier message: 19/08/2004, 17h32

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