2015-07-28 38 views
3

x是一个无符号整数。在运行时,最快和最优雅的方法是声明一个容器/初始值设定项列表,填充0到x之间的无符号整数?将整数范围从0到x分配给容器的最快方法

理想情况下,我想该解决方案是一个一行,沿着线的东西:

std::vector<int> v = {0..x}; 

这是我到目前为止,但我不知道的性能:

std::vector<int> v(x); 
std::generate_n(v.begin(), x, [] { static int i = -1; ++i; return i;}); 
+9

['的std :: iota'](http://en.cppreference.com/W/CPP /算法/ IOTA)。 – user657267

+0

@ user657267 daaaaamn我的google-fu再次背叛了我,这是_exactly_我​​需要的!谢谢! – blue

回答

4

由于C++ 11,有在C++标准库中的函数作为此具体提出:std::iota

相关问题