类别:算法 | 组件类型:函数 |
template <class ForwardIterator, class Generator> void generate(ForwardIterator first, ForwardIterator last, Generator gen);
vector<int> V; ... generate(V.begin(), V.end(), rand);
填充一个包含随机数的向量。gen备注[first, last)[1] 对于范围中的每个迭代器,都会调用函数对象
, 而不是只在循环外调用一次。这种区别很重要,因为生成器不必每次调用都返回相同的结果;它被允许从文件读取,引用和修改局部状态,等等。生成[2] 的原因是[first, last)要求其参数为可修改的前向迭代器,而不是仅仅是输出迭代器,是因为它使用了一系列迭代器。无法以合理的方式描述输出迭代器的范围,因为不可能比较两个输出迭代器是否相等。该generate_n