Declaration de variables

Résolu
wismerhill__ Messages postés 88 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 26 juillet 2007 - 26 juil. 2006 à 12:36
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 - 26 juil. 2006 à 20:02
Bonjour, je cherche à faire qqch de tres simple : créer un std::vector<double> dans un constructeur de classe.

J'ai essayé

MaClasse::MaClasse
{
monvecteur= new std::vector<double> //pour le faire dynamiquement mais ça ne marche pas
}

1.Quel est la syntaxe ?
2. Comment le faire statiquement
3.Sachant que mon but est de faire des pushback au fur et a mesure du programme quel est la meilleur facon

wis : in tartiflette I trust (like the others)

6 réponses

wismerhill__ Messages postés 88 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 26 juillet 2007
26 juil. 2006 à 13:54
Tout a fait dac pour la reallocation de la memoire, ce qui m'a d'ailleurs embeté par le passé.
Merci de ces infos laurent

++

wis : in tartiflette I trust (like the others)
3
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
26 juil. 2006 à 13:21
1 Dynamiquement :

std::vector<double> * b = new std::vector<double>;

2 Statiquement

std::vector<double> mon vector;

3 pour choisir le bon conteneur

 http://c.developpez.com/faq/cpp/?page=STL#STL_choix_conteneur


++
0
wismerhill__ Messages postés 88 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 26 juillet 2007
26 juil. 2006 à 13:28
Merci beaucoup, c'est ma foi bien ce que je pensais, j'ai corrigé depuis, néanmoins une chose m'intrigue, quand je declare un
std::vector<double> monvector, que fait il ? est ce qu'il crée un vecteur vide ? ou est ce qu'il reserve un vecteur de XXX elements ?

wis : in tartiflette I trust (like the others)
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
26 juil. 2006 à 13:35
Par defaut, il doit reserve une place par defaut: Tu
dois pouvoir le lui presiser en faisait std::vector<double>
monvector(500);

ou apres la creation tu peut faire
// réserver (allouer) de la place pour au moins 50 éléments
monvector.reserve( 50 );

Si tu lui precise rien, il va ce debrouiller tout seul
( si tu fais un push_back et qu'il y a plus assez de place, il realloue de la memoire)

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
26 juil. 2006 à 14:06
Regarde le fonctionnement des deque, c'est une
structrure assez sympa, tu as un acces indexé ( operateur [] ), avec
ajout et suppression de liste rapide, et il n'y a pas de reallocation
car c'est une sorte de liste.


++
0
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
26 juil. 2006 à 20:02
1.

MaClasse::MaClasse

: monvecteur( /* 1 arg ou appel explicite */ )

{


}


3. Comme ca à déjà été dit, reserve permet de réserver de l'espace mais
n'est pas obligatoire, ca permet cependant d'éviter de trop nombreuses
réallocations en réservant une estimation du nombre d'élément à insérer.
0
Rejoignez-nous