Comment passer plusieurs ints dans un vecteur à la fois?

Actuellement, lorsque je dois utiliser vector.push_back() plusieurs fois.

Le code que j’utilise actuellement est

  std::vector TestVector; TestVector.push_back(2); TestVector.push_back(5); TestVector.push_back(8); TestVector.push_back(11); TestVector.push_back(14); 

Existe-t-il un moyen d’utiliser uniquement vector.push_back() une seule fois et de ne transmettre que plusieurs valeurs dans le vecteur?

Essayez de passer le tableau au vecteur:

 int arr[] = {2,5,8,11,14}; std::vector TestVector(arr, arr+5); 

Vous pouvez toujours appeler std :: vector :: assign pour assigner un tableau à vector, appelez std :: vector :: insert pour append plusieurs tableaux.

Si vous utilisez C ++ 11, vous pouvez essayer:

 std::vector v{2,5,8,11,14}; 

Ou

  std::vector v = {2,5,8,11,14}; 

Vous pouvez également utiliser vector :: insert .

 std::vector v; int a[5] = {2, 5, 8, 11, 14}; v.insert(v.end(), a, a+5); 

Modifier:

Bien sûr, dans la programmation réelle, vous devez utiliser:

 v.insert(v.end(), a, a+(sizeof(a)/sizeof(a[0]))); // C++03 v.insert(v.end(), std::begin(a), std::end(a)); // C++11 

Vous pouvez le faire avec la liste d’initialisation:

 std::vector array; // First argument is an iterator to the element BEFORE which you will insert: // In this case, you will insert before the end() iterator, which means appending value // at the end of the vector. array.insert(array.end(), { 1, 2, 3, 4, 5, 6 }); 

Vous pouvez également utiliser Boost.Assignment :

 const list primes = list_of(2)(3)(5)(7)(11); vector v; v += 1,2,3,4,5,6,7,8,9; 

using vector :: insert (position const_iterator, initializer_list il); http://www.cplusplus.com/reference/vector/vector/insert/

 #include  #include  int main() { std::vector vec; vec.insert(vec.end(),{1,2,3,4}); return 0; }