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 :

vector::erase


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Par défaut vector::erase
    Bonjour à tous,

    EDIT : Je reprend complétement mon post, le problème n'est vraiment pas celui que je pensais.

    La question que je me pose est : Pourquoi le code suivant ne marche-t-il pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    std::vector<T> vect;
    std::vector<T> const_iterator it;
    it = std::find(vect.begin(),vect.end(),t); //Avec t de type T
    if(it != vect.end()){vect.erase(it);} //erreur sur le vect.erase(it)
    Merci de vos réponses

  2. #2
    Membre chevronné Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Par défaut
    Parce que tu lui passes un const_iterator oO ?

  3. #3
    Membre éclairé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Par défaut
    A... Ca veut dire que par définition on ne peut pas effacer un élément pointé par un const_iterator?

    Pourtant je croyais que les const_iterator empechais simplement que l'on modifie par eux l'élement qu'ils pointent... Ce n'est donc pas le cas ?

    Désolé si mes questions semblent "bizarre", mais je maitrise pas encore très bien le C++ et la SDL

  4. #4
    Membre chevronné Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Par défaut
    Oui, const_iterator empêche la modification du fichier... Mais la méthode erase appelle sont destructeur >< !

  5. #5
    Membre éclairé Avatar de cs_ntd
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2006
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 598
    Par défaut
    d'accord... Je testerai ça tout à l'heure .

    Merci de ton aide en tout cas

+ 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. Réponses: 5
    Dernier message: 22/12/2010, 09h46
  3. [VC++6] Vector Erase - Free Memory ?
    Par Mattgic dans le forum SL & STL
    Réponses: 15
    Dernier message: 12/06/2009, 20h22
  4. Réponses: 6
    Dernier message: 26/03/2006, 13h49
  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