Еще одна возможность - использовать boost::counting_iterator
[1]. Это также имеет преимущество работы с C ++ 98, если вам не повезло, что вы застряли с ним.
#include <boost/iterator/counting_iterator.hpp>
...
result.insert(result.end(), boost::counting_iterator<int>(23), boost::counting_iterator<int>(58));
или, еще проще:
vector<int> result(boost::counting_iterator<int>(23), boost::counting_iterator<int>(58));
Обратите внимание, что, поскольку в любом случае ожидается нормальный полуоткрытый диапазон, вам придется использовать lastNum+1
, и по этой причине вы не сможете вставить numeric_limits<int>::max()
(он же INT_MAX
).
[1] https://www.boost.org/doc/libs/1_67_0/libs/iterator/doc/counting_iterator.html