小编典典

在C ++ / STL中是否有等效于Python range()的紧凑型

python

如何使用C ++ / STL执行以下操作?我想std::vector用一系列值[最小,最大)填充。

# Python
>>> x = range(0, 10)
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

我想我可以使用std::generate_n并提供函子来生成序列,但是我想知道是否有使用STL进行此操作的更简洁方法?


阅读 133

收藏
2020-12-20

共1个答案

小编典典

在C ++ 11中,有std::iota

#include <vector>
#include <numeric> //std::iota

std::vector<int> x(10);
std::iota(std::begin(x), std::end(x), 0); //0 is the starting number
2020-12-20