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 :

[STL]vector, allocation non dynamique.


Sujet :

SL & STL C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 81
    Par défaut [STL]vector, allocation non dynamique.
    bonjour,

    il y a quelque chose qui m'embete avec l'utilisation des vectors en c++ : est-ce qu'il y a moyen de définir la taille d'un vecteur après sa déclaration sans passer par des pointeurs et new ?

    exemple :

    j'ai défini vector<T> v; dans les variables de ma classe
    j'aimerai définir la taille du vecteur dans le constructeur, mais j'aimerai bien ne pas avoir à utiliser de pointeur.

    merci pour votre réponse

  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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Tu n'as de toute façon jamais à utiliser de pointeur ou d'appel à new avec un vector.

    Pour définir la taille à la construction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::vector<T> v(taille);
    Il faudra passer par la liste d'initialisations du constructeur si c'est une variable membre.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 81
    Par défaut
    en fait, je pense avoir résolu le problème en utilisant la méthode resize de vector.
    je m'explique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class A {
       public : 
          int lg_vecteur;
          vector<Point> p;
     
          A(int lg_vecteur);
    }
    et dans le constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    A(int lg_vecteur) {
       p.resize(lg_vecteur);
    }
    je sais pas si c'est une super méthode, mais ça à l'air de marcher comme je veux

  4. #4
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Laurent te suggérait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A(int taille) : p(taille) { }
    cf : http://c.developpez.com/faq/cpp/?pag...EUR_liste_init

  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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    C'est mieux en utilisant la liste d'initialisations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    A(int lg_vecteur) : p(lg_vecteur) {
    }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 81
    Par défaut
    en fait je voyais pas de quoi tu voulais parler par liste d'initialisation (j'en avais jamais entendu parler, je code plutôt en c d'habitude), mais je me doutais bien que y'avait un truc propre pour faire ce que je voulais faire.

    merci du conseil en tout cas.

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

Discussions similaires

  1. allocation dynamique et non dynamique...
    Par youp_db dans le forum C
    Réponses: 3
    Dernier message: 02/10/2005, 13h32
  2. Allocation mémoire dynamique
    Par ITISAR dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/01/2005, 09h59
  3. STL vector addition
    Par dj.motte dans le forum SL & STL
    Réponses: 1
    Dernier message: 08/11/2004, 08h25
  4. [STL] vector<string> et appel de fonctions.
    Par guejo dans le forum MFC
    Réponses: 4
    Dernier message: 08/10/2004, 17h36
  5. STL::vector crash a l"execution
    Par sebA dans le forum MFC
    Réponses: 2
    Dernier message: 16/06/2004, 16h36

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