Comment assigner une valeur aux n premiers éléments d’un vecteur? c ++

Comment assigner une valeur aux n premiers éléments d’un vecteur? Dites, je veux assigner 1 à un vecteur de l’index 0 à l’index 4.

J’ai déjà un vecteur de taille 11. Maintenant, je veux mettre 1 aux 5 premiers éléments.

Vous pouvez utiliser std::fill ou std::fill_n :

 std::fill(v.begin(), std::next(v.begin(), 5), 1); std::fill_n(v.begin(), 5, 1); 

Remarque: std::next est C ++ 11. Dans ce cas, il peut être remplacé par v.begin() + 5 .

Si vous voulez construire un vecteur rempli comme ça, utilisez le constructeur approprié:

 std::vector v(5,1); 

Cela crée 5 ints avec la valeur 1.

Vous pouvez utiliser std :: fill

Selon la documentation:

 template< class ForwardIt, class T > void fill(ForwardIt first, ForwardIt last, const T& value) { for (; first != last; ++first) { *first = value; } } 

Tu peux faire:

  std::fill(v.begin(), v.begin() +5, 1) ;//assume you fill 1 from index 0 to 4(included)