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 :

supprimer un element d'un vecteur


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 83
    Points : 47
    Points
    47
    Par défaut supprimer un element d'un vecteur
    bonjour
    je souhaite supprimer le ieme element d'un vecteur
    je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     for (int i = 0; i < Vl.size();i++){
                            if (strcmp(test.c_str(),Vl[i]->GetNom()) == 0){
                                   //suppression de Vl[i]
                            }
    j'ai essayé avec plein de fonctions mais ca marche pô...
    merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    En général, on va plutôt bosser avec des itérateurs. Une fois que tu as ton itérateur, un petit coup d'erase et c'est fini. N'importe quelle doc en ligne sur la SL va te donner la liste des fonctions membre des vecteurs (et autres containers).

    Et dans ce cas particulier, on va plutôt ecrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    // les données dans le vecteur
    struct typeDonnee {
        ...
        std::string const& getNom() const;
    };
     
    // Le foncteur-prédicat, cf FAQ
    struct TesteNom {
        TesteNom(std::string const& nom) : nom_(nom) {}
        bool operator()(typeDonne const* d) const {
            return d->getNom() == nom_;
        }
    private:
        std::string nom_;
    };
     
    typedef std::vector<typeDonnee> vector_t;
    vector_t VI;
    .... // remplissage
     
    // déplace les éléments dont le nom vaut test à la fin du vecteur
    vector_t::const_iterator coupe_a_partir
        = std::remove_if(VI.begin(), VI.end(), TesteNom(test));
     
    // Pas oublier de libérer les éléments (si tu utilises des pointeurs 
    // bruts (i.e. non intelligents) devant être libérés).
    // Cf FAQ pour définition de DeleteObject (ou MEC++)
    for_each(coupe_a_partir, VI.end(), DeleteObject());
     
    // Et enfin, on coupe ce qui dépasse du vecteur
    VI.erase(coupe_a_partir, VI.end());
    Et voilà pour une variante du dit erase-remove idiom adapté à un vecteur de pointeurs bruts.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. [langage] Supprimer un élément dans une liste
    Par myjuna dans le forum Langage
    Réponses: 15
    Dernier message: 06/08/2014, 11h49
  2. [VB.NET][listbox] Comment supprimer un element ?
    Par am.adnane dans le forum Windows Forms
    Réponses: 5
    Dernier message: 11/07/2006, 00h28
  3. Supprimer une valeur dans un vecteur
    Par jalilv6 dans le forum Langage
    Réponses: 2
    Dernier message: 06/04/2006, 09h33
  4. [Collections] classer les elements d'un vecteur
    Par smariteau dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 31/01/2006, 12h41
  5. supprimer un element d'un tableau vector
    Par boby61 dans le forum SL & STL
    Réponses: 22
    Dernier message: 23/03/2005, 20h49

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