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 élément dans un pointeur


Sujet :

C++

  1. #1
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Par défaut Supprimer un élément dans un pointeur
    Bonjour à tous .

    J'ai une toute petite question toute bête mais comme je ne maîtrise pas les pointeurs très efficacement je vais devoir compter sur vous pour m'éclaircir .

    Si j'ai un tableau d'objet déclarer comme ceci :
    (Supposons que Objet est une structure contenant par exemple "int position")
    Comment je fais pour supprimer proprement un objet parmi mon tableau.
    Par exemple, si j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    mesObjets[0] = 2;
    mesObjets[1].position = 5;
    mesObjets[2].position = 8;
    mesObjets[3].position = 4;
    mesObjets[4].position = 1;
    mesObjets[5].position = 9;
    Comment je supprime l'objet 3 (qui contient donc 4) ? Est-ce que le décalage des indices des autres éléments du pointeur se feront automatiquement ?
    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    tu sembles avoir identifié les actions à réaliser.
    Dans ton tableau, pour supprimer une entrée il faut
    - supprimer l'entrée si c'est issue d'une une allocation dynamique
    - décaler le tableau si l'on veut préserver l'ordre

    Par contre, on est en C++, donc rien n'est fait automatiquement (à l'exception de la destruction d'objet statiques quand on sort de son scope).

    Puisque tu es en C++ justement : std::vector !
    Tes problèmes seront résolus.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Bonjour,

    tu sembles avoir identifié les actions à réaliser.
    Dans ton tableau, pour supprimer une entrée il faut
    - supprimer l'entrée si c'est issue d'une une allocation dynamique
    - décaler le tableau si l'on veut préserver l'ordre

    Par contre, on est en C++, donc rien n'est fait automatiquement (à l'exception de la destruction d'objet statiques quand on sort de son scope).

    Puisque tu es en C++ justement : std::vector !
    Tes problèmes seront résolus.
    Ok merci, je vais essayer avec les vector

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur avant-vente

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Par défaut
    A moins que tu ai surdéfinie l'opérateur [] je ne comprend pas trop ta déclaration ...

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Par défaut
    Citation Envoyé par OleoShark Voir le message
    A moins que tu ai surdéfinie l'opérateur [] je ne comprend pas trop ta déclaration ...
    Oui je comprend ce que tu veux dire. Je n'ai pas été très précis j'ai modifié mon message pour ceux qui voudrons lire le topic.
    Bonne journée

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Je ne vois pas ce que vient faire l'opérateur [] ici.
    Il s'agit d'un pointeur d'Objet, utilisé comme tableau.
    A la limite on peut y voir une surcharge de l'operateur d'affectation, mais pas de [].
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur avant-vente

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Par défaut
    C'est possible d'avoir la définition de ton type ?

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Si tu restes sur un tableau, le décalage n'est pas automatique.
    • Si tu veux préserver l'ordre, tu dois le faire toi-même.
    • Sinon, tu peux tricher en déplaçant simplement le dernier élément à sa place.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. supprimer un élément dans une zone de liste
    Par mawelle dans le forum IHM
    Réponses: 8
    Dernier message: 03/06/2008, 15h05
  2. supprimer un élément dans une JList
    Par ZeRouxXx dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 18/04/2008, 15h08
  3. Supprimer des éléments dans la feuille de propriétés
    Par Deciprog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 24/03/2008, 21h34
  4. Ajouter / supprimer plusieurs éléments dans un formulaire
    Par nesswaw dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/03/2008, 10h52
  5. Supprimer des éléments dans une TreeView ?
    Par souch dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/09/2005, 12h20

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