如何将多个int一次传入vector?

目前,我必须多次使用vector.push_back()

我目前使用的代码是

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

有没有办法只使用vector.push_back()一次,只是将多个值传入向量?

尝试将数组传递给向量:

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

你总是可以调用std :: vector :: assign来将数组赋值给vector,调用std :: vector :: insert来添加多个数组。

如果你使用C ++ 11,你可以尝试:

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

要么

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

你也可以使用vector :: insert

 std::vector<int> v; int a[5] = { 1,2,3,4,5 }; v.insert(v.end(), a, a+5); 

编辑:当然,在现实世界的编程中,您应该使用非常丑陋但安全的v.insert(v.end(), a, a+(sizeof(a)/sizeof(a[0]))); ,或_ countof()macros,如果你有它的定义。

你可以用初始化列表来完成它:

 std::vector<unsigned int> 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 }); 

你也可以使用Boost.Assignment :

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

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

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