Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I pass multiple ints into a vector at once?

Currently when I have to use vector.push_back() multiple times.

The code I'm currently using is

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

Is there a way to only use vector.push_back() once and just pass multiple values into the vector?

like image 907
Elliott Avatar asked Jan 28 '13 12:01

Elliott


People also ask

How do you add multiple elements to a vector?

vector insert() function in C++ STL std::vector::insert() is a built-in function in C++ STL which inserts new elements before the element at the specified position, effectively increasing the container size by the number of elements inserted.

Can a vector hold multiple data types?

Yes it is possible to hold two different types, you can create a vector of union types. The space used will be the larger of the types.


2 Answers

You can do it with initializer list:

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 }); 
like image 172
Kosiek Avatar answered Sep 23 '22 17:09

Kosiek


Try pass array to vector:

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

You could always call std::vector::assign to assign array to vector, call std::vector::insert to add multiple arrays.

If you use C++11, you can try:

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

Or

 std::vector<int> v = {2,5,8,11,14}; 
like image 42
billz Avatar answered Sep 22 '22 17:09

billz