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)