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 :

Prob : Suppresion instance d'un vecteur de pointeurs


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 64
    Points
    64
    Par défaut Prob : Suppresion instance d'un vecteur de pointeurs
    Bonsoir !
    Est ce que quelqu'un peut me trouver ce qui cloche ?
    Erreur : violation d'accès.


    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
     
    #include <vector>
    #include <iostream>
     
    int main()
    {
            int i = 5;
            int *pInt;
            pInt = &i;
            std::vector <int *> Vec;
            Vec.push_back(pInt);
            Vec.erase(&pInt);
     
            return 0;
    }
    Merci!

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Points : 460
    Points
    460
    Par défaut
    'erase' prend un itérateur (ou 2) en paramètre.
    ex:
    Visiblement ton compilateur n'y trouve rien à redire car ta version de la STL utilise un pointeur en guise d'itérateur sur un vecteur...

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    La tu lui passes un int**, c'est encore plus bizarre.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 64
    Points
    64
    Par défaut
    En fait je veux pouvoir stocker des pointeurs d'autres instances qui sont dans un vector "A" dans un vector "B" et lorsque j'en ai plus besoin dans "B" je l'ai retire de "B" sans pour autant les supprimer de "A".

    "A" {a,b,c,d,...}
    "B" {&a,&b,&c,&d,...}
    Si on supprime d de "B" on doit obtenir
    "A" {a,b,c,d,...}
    "B" {&a,&b,&c,...}

    La je crois que vous aurez compris ce que je cherche à faire...
    Je suis sur que c'est pas si compliqué que ca

  5. #5
    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
    Cependant si tu as le choix du conteneur, et que tu n'as que ça à faire avec, je te conseille un std::set.

    Et fais attention avec tes pointeurs, beaucoup d'opérations sur std::vector bougent la mémoire et invalident donc les pointeurs que tu pourraient stocker sur les éléments.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 64
    Points
    64
    Par défaut
    Merci Laurent de m'avoir réorienté vers la bonne voie
    J'ai en effet réussi à faire ce que je voulais tout simplement.
    Je n'utilisais jusqu'à présent que les vector en tant que container...

    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
     
    #include <set>
    #include <iostream>
     
    int main()
    {
            int i = 5;
            int *pInt;
            pInt = &i;
            std::set < int * > pSet;
            pSet.insert(pInt);
            pSet.erase(pInt);
     
            return 0;
    }
    Au revoir!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/08/2010, 17h46
  2. Class Caméra -> vecteur position & pointeur
    Par Elipso dans le forum OpenGL
    Réponses: 5
    Dernier message: 21/05/2010, 02h07
  3. Delete d'un vecteur de pointeurs
    Par coberle dans le forum C++
    Réponses: 4
    Dernier message: 02/04/2009, 15h03
  4. Arbre N-aire avec des vecteurs de pointeurs
    Par valderama dans le forum Débuter
    Réponses: 3
    Dernier message: 15/01/2009, 17h42
  5. [Débutant]Vecteur de pointeurs
    Par @r$£~%[ dans le forum C++
    Réponses: 18
    Dernier message: 09/08/2005, 17h19

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