101 votes

Comment créer un vecteur de taille définie par l'utilisateur mais sans valeurs prédéfinies?

En C++, on peut créer un tableau de taille prédéfinie, par exemple 20, avec int montableau[20]. Cependant, la documentation en ligne sur les vecteurs ne montre pas de manière similaire d'initialiser les vecteurs : Au lieu de cela, un vecteur devrait être initialisé avec, par exemple, std::vector monvecteur (4, 100);. Cela donne un vecteur de taille 4 avec tous les éléments ayant la valeur 100.

Comment un vecteur peut-il être initialisé avec seulement une taille prédéfinie et aucune valeur prédéfinie, comme avec les tableaux?

124voto

Chad Points 9700

Avec le constructeur :

// créer un vecteur avec 20 éléments entiers
std::vector arr(20);

for(int x = 0; x < 20; ++x)
   arr[x] = x;

0voto

Mikhail Points 3262

Donc parfois you'd want to do this to preallocate a static buffer, and for some reason this question is the first Google result for that task... So

static std::vector buffer = [](){ std::vector buffer; buffer.reserve(1000); return buffer; }();

So in this case the items in the vector will be in an unitialized state but you won't pay the direct memory allocation cost of growing the vector until you hit 1000 elements

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X