根据首地址和尾地址来赋值:
1 2 3 4 5 6
| template<class ForwardIterator, class Generator> void generate( ForwardIterator _First, ForwardIterator _Last, Generator _Gen );
|
每次调用该对象,函数为范围的每个元素调用,且不需要返回相同的值。例如,从文件读取或引用和修改本地状态。 生成器的结果类型必须可转换为可用于向前迭代器类型的值范围的。
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <vector> #include <algorithm> #include <iostream> #include <ostream>
int main( ) { using namespace std; vector <int> v1 ( 5 ); vector <int>::iterator Iter1; generate ( v1.begin ( ), v1.end ( ) , rand ); for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ ) cout << *Iter1 << " "; }
|
// 根据首地址和元素数量来赋值
template<class OutputIterator, class Diff, class Generator>
void generate_n( OutputIterator First, Diff Count, Generator Gen);
参见:VS2015
https://msdn.microsoft.com/zh-cn/library/46h7chx6.aspx