Is there a simple / elegant way to push a Range of integers to an STD vector?
c++, c++11, std
Solution
You can do this in C++11, using algorithm iota.
vReturn.clear();
vReturn.resize((nEnd - nStart) + 1);
std::iota(vReturn.begin(), vReturn.end(), nStart);
You can also use boost::irange.
auto range = boost::irange<int>(nStart, nEnd + 1);
vReturn.assign(range.begin(), range.end());
Problem
I have a simple task which is to initialize an `std::vector<int>` with a range of integers. The range is given by the user, and i try to avoid using a `for` loop. Something like: ``` void addRange(std::vector<int>& vReturn, int nStart, int nEnd) { vReturn.clear(); // straightforward solution for (int nInteger = nStart; nInteger <= nEnd; nInteger++) { vReturn.push_back(nInteger); } ////////////////////////////////////////////// // Elegent Pseudo-Code vReturn.add_range(nStart, nEnd); // <<- is this doable? } ```