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 :

vie des vectors


Sujet :

SL & STL C++

  1. #1
    Membre confirmé Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Par défaut vie des vectors
    Je voulais connaitre un peu la duree de vie d'un vector.


    Si je crée un vector dans une fonction, a la fin de celle ci ke se passe t il? appelle t il clear() de facon automatique.

    Faut il utiliser un pointeur et new pour le faire "survivre"? si oui le cas suivant d un tableau multi est il bon?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    vector<vector<double> > *vec2D = new vector <vector<double> > (100);
    for (int i=0; i<100; i++)
          (*vec2D)[i].resize (100);
    Merci d avance

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Il vit comme toute autre variable. Mais le mieux est de le renvoyer par valeur à la fin de la fonction ou en paramètre/référence.
    L'allocation dynamique est à éviter, autant allouer la mémoire directement sans passer par un vecteur !

  3. #3
    Membre confirmé Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Par défaut
    J ai besoin de ces tableau multi, et je suis oblige d allouer dynamiquement ce tableau.... je ne connais pas a l avance sa taille

    Mon code est il bon???

  4. #4
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    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 296
    Par défaut
    Au détail qu'un pointeur sur un vecteur est globalement contre productif, oui.
    Bref, la même chose sans le new.
    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...

  5. #5
    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
    L'un des plus grands intérêts du vector est d'être un tableau dont on ne connait pas la taille à l'avance, dans lequel on peut rajouter des éléments quand on veut.

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Ton code est absolument n'importe quoi.
    vector<vector<double> > *vec2D = new vector <vector<double> > (100);
    Ceci alloue 100 vector<vector<double> >.

    J ai besoin de ces tableau multi, et je suis oblige d allouer dynamiquement ce tableau.... je ne connais pas a l avance sa taille
    Ceci montre que tu n'as rien compris du tout.

    Le code correct est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vector<vector<double> > vec2D(100, vector<double>(100));

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

Discussions similaires

  1. Dureé de vie des données dans un flash disque
    Par Tsimplice dans le forum Composants
    Réponses: 5
    Dernier message: 28/05/2007, 10h01
  2. "Batch select" et duree de vie des connections
    Par KillMePlease dans le forum JDBC
    Réponses: 1
    Dernier message: 28/02/2007, 21h23
  3. parcourir ArrayList contenant des vectors
    Par imane_bennouna dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 04/08/2006, 10h56
  4. Ordonner des vectors
    Par titoine1978 dans le forum SL & STL
    Réponses: 4
    Dernier message: 21/04/2006, 19h12
  5. [Collections] Fonctionnement des Vector
    Par Ubum dans le forum Collection et Stream
    Réponses: 14
    Dernier message: 16/03/2006, 11h40

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