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?
Best Answer
If your compiler supports C++11, you can simply do:
This is available in GCC as of version 4.4. Unfortunately, VC++ 2010 seems to be lagging behind in this respect.
Alternatively, the Boost.Assign library uses non-macro magic to allow the following:
Or:
But keep in mind that this has some overhead (basically,
list_of
constructs astd::deque
under the hood) so for performance-critical code you'd be better off doing as Yacoby says.