根据首地址和尾地址来赋值:
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