c++ - 用自动生成的值初始化 C++ 向量的最短方法
问题描述
我想知道在最近的 C++ 标准修订中是否有任何内容可以让我构造一个向量并用最少的击键次数(最好是单行)用自动生成的值(比如来自 RNG)填充它。
我能想到的最好的是
int N=1000;
std::default_random_engine rng;
std::uniform_int_distribution<int> distr(0,99);
vector<int> v(N);
std::generate(v.begin(), v.end(), std::bind(distr,rng));
或者
std::generate_n(v.begin(), N, std::bind(distr,rng));
但它太长了,实际上需要更少的击键来编写显式初始化循环:
for(auto& x: v)
x=distr(rng);
我特别不喜欢 .begin() 和 .end() 在那里。
似乎没有合适的向量构造函数能够采用仿函数初始化器,但也许还有其他方法。
解决方案
推荐阅读
- c# - 如何在 C# 中读取多个 zip 文件
- multithreading - 向量(或向量的向量)上的并发操作
- python - 如何在 python 中回复内联键盘标记
- excel - 根据特定条件自动平均分配任务
- javascript - 缩小失败。返回未缩小的内容。Javascript
- unix - 如果模式在任何顺序行中的两列之间重复,则比较两行并仅打印一个
- json - 颤振错误:预期类型为“FutureOr”的值
- >',但得到了“_JsonMap”类型之一
- javascript - 提交表单后如何阻止选择标签重置为默认值?
- .htaccess - .htaccess RewriteRule 用于导航
- list - 使用 for 循环获取列表中项目的错误索引