generate_n
|
|
类别:算法 |
组件类型:函数 |
原型
template <class OutputIterator, class Size, class Generator>
OutputIterator generate_n(OutputIterator first, Size n, Generator gen);
描述
Generate_n将调用gen的结果(一个不带参数的函数对象)赋给范围[first, first+n)中的每个元素。[1] 返回值为first + n.
定义
定义在标准头文件algorithm中,以及非标准向后兼容头文件algo.h中。类型要求
-
OutputIterator是输出迭代器模型。
-
Size是整数类型(有符号或无符号)。
-
Generator是生成器模型。
-
Generator的结果类型可以转换为OutputIterator的值类型集合中的类型。
先决条件
-
n >= 0.
- 有足够的空间容纳n个值。也就是说,[first, first+n)是一个有效的范围。
复杂度
线性。准确地n次调用gen. [1]
示例
使用C标准库函数rand.
generate_n(ostream_iterator<int>(cout, "\n"), 100, rand);
打印100个随机数。
注释genn被调用[first, first+n)次(范围中的每个迭代器一次),而不是只在循环外部调用一次。这种区别很重要,因为生成器不必每次调用都返回相同的结果;它可以从文件读取,引用和修改局部状态,等等。
另请参阅
copy, fill, fill_n, generate, iota
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。
商标信息