Agnel Kurian Agnel Kurian - 4 months ago 18
C++ Question

What is the easiest way to initialize a std::vector with hardcoded elements?

I can create an array and initialize it like this:

int a[] = {10, 20, 30};


How do I create a
std::vector
and initialize it similarly elegant?

The best way I know is:

std::vector<int> ints;

ints.push_back(10);
ints.push_back(20);
ints.push_back(30);


Is there a better way?

Answer

One method would be to use the array to initialize the vector

static const int arr[] = {16,2,77,29};
vector<int> vec (arr, arr + sizeof(arr) / sizeof(arr[0]) );