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 :

mettre un struct dans un vector


Sujet :

SL & STL C++

  1. #1
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut mettre un struct dans un vector
    Bonjour,

    voici un exemple simplifié de ce que je voudrais faire:

    Je veux créer un vecteur qui contient des points:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // je crée un struct "Point":
    typedef struct
    {
      int abscisse;
      int ordonnee;
    } Point;
     
    // je crée un vecteur qui contiendra des points:
    std::vector<Point> monVecteur;
    maintenant j'aimerais créer une fonction qui prend comme paramètre deux entiers, et qui ajoute au vecteur le point cprrespondant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // je précise que cette fonction appartient à une classe dont monVecteur est une variable d'instance. Il est donc accessible depuis le corps de cette fonction
    void addPoit(int x, int y)
    {
      Point unPoint;
      unPoint.abscisse = x;
      unPoint.ordonnee = y;
      monVecteur.push_back(unPoint)
    }
    Ma question: Est-ce que ce code va marcher? En effet, ma variable unPoint cessera d'exister à la fin de la fonction. Est-ce que la fonction "push_back" aura fait une copie de cette variable?
    Ou alors est-ce que je suis obligé d'utiliser les pointeurs pour faire ce que je veux faire?

    merci

  2. #2
    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 : 39
    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
    st-ce que la fonction "push_back" aura fait une copie de cette variable?
    Oui.

    Tu peux aussi ajouter un constructeur à ta structure et faire simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monVecteur.push_back(Point(x, y))

    PS : typedef struct ... c'est pour le C.

  3. #3
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut
    Citation Envoyé par Loulou24
    Oui.
    cool! ça m'arrage. Merci.

    Citation Envoyé par Loulou24
    PS : typedef struct ... c'est pour le C
    Eh oui! ça sera pas la premiere fois que je mélange C et C++.

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

Discussions similaires

  1. push_back une anonymous struct dans un vector
    Par MrPchoun dans le forum C++
    Réponses: 13
    Dernier message: 13/05/2015, 16h31
  2. Recherche motif dans un vector<struct>
    Par leila32 dans le forum C++
    Réponses: 4
    Dernier message: 29/03/2013, 14h07
  3. [Drag & Drop] Mettre une fiche dans un panel
    Par corwin_d_ambre dans le forum Composants VCL
    Réponses: 5
    Dernier message: 12/01/2004, 10h46
  4. Mettre son programme dans Envoyer Vers ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 11
    Dernier message: 29/07/2003, 19h09
  5. Peut on mettre une image dans une BD MySQL ?
    Par maddog2032 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 25/07/2003, 16h18

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