如何从顺序值中快速创建矢量
例如.:
vector<int> vec (4, 100);
for (vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
cout << *it << endl;
}
Run Code Online (Sandbox Code Playgroud)
日期:
# 100
# 100
# 100
# 100
Run Code Online (Sandbox Code Playgroud)
我想要
vector<int> vec (100, "0 to N");
Run Code Online (Sandbox Code Playgroud)
我想知道实现这一结果的最有效方法.例如,不使用循环.
它是一个运行时变量.
Ret*_*nja 22
这是另一种方式......
int start = 27;
std::vector<int> v(100);
std::iota(v.begin(), v.end(), start);
Run Code Online (Sandbox Code Playgroud)
Die*_*ühl 16
这是一个不使用可见循环的版本,只有标准C++库.它很好地演示了使用lambda作为生成器.使用reserve()是可选的,只是为了避免多个内存分配.
std::vector<int> v;
v.reserve(100);
int n(0);
std::generate_n(std::back_inserter(v), 100, [n]()mutable { return n++; });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4448 次 |
| 最近记录: |