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 :

std::vector et erase


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �prouv�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    1 299
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 1 299
    Par d�faut std::vector et erase
    Bonjour, je souhaite supprimer d'un vector tous les �l�ments nuls. J'ai donc fait ceci :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      vector<double>::iterator it = v.begin();
      while(it != v.end())
      {
    	if(fabs(*it) < 1e-10) // on supprime tous les 0
    		v.erase(it);
    	else
    		it++;
      }
    Arriv� au 1e z�ro, la suppression est correctement effectu�e, mais lorsqu'on passe � l'it�ration d'apr�s, il crash au test while(it != v.end())


    Pourqouoi est-ce que v.end() n'est pas r��valuer � chaque passage ? Comment faire ?

    Merci d'avance

  2. #2
    zul
    zul est d�connect�
    Membre chevronn� Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Par d�faut
    apr�s le erase, ton iterateur est invalide. Heuresement vector::erase renvoie un iterateur qui va bien. Il faut donc faire

    et cela devrait fonctionner

  3. #3
    Membre �prouv�
    Profil pro
    Inscrit en
    D�cembre 2004
    Messages
    1 299
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 1 299
    Par d�faut
    OK merci !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. std vector erase sur un range d'�l�ments
    Par Muska17 dans le forum C++/CLI
    R�ponses: 2
    Dernier message: 08/09/2014, 11h04
  2. char[50] et std::vector<>
    Par tut dans le forum SL & STL
    R�ponses: 9
    Dernier message: 12/10/2004, 13h26
  3. R�ponses: 8
    Dernier message: 26/08/2004, 18h59
  4. Sauvegarde std::vector dans un .ini
    Par mick74 dans le forum MFC
    R�ponses: 2
    Dernier message: 12/05/2004, 13h30
  5. vector et erase()
    Par gytr2 dans le forum SL & STL
    R�ponses: 6
    Dernier message: 02/03/2004, 12h45

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