1、需要頭文件:algorithm
2、對容器[first, last)範圍內的元素進行操作,gen是一個無需傳參的方法的方法名
template <class ForwardIterator, class Generator>
void generate(ForwardIterator first, ForwardIterator last, Generator gen);
3、實例:
#include<iostream>
#include<iterator>
#include<algorithm>
#include<vector>
#include<list>
#include<ctime>
using namespace std;
int random(){
return rand() % 10;
}
int main(){
/* 當前時間對應的int值爲隨機序列起點,這樣每次運行程序,
由於起點不同纔可以得到不同的隨機數,time函數給出從1970年1月1日00:00:00至今的秒數,
它必須帶一個參數,用來存儲這個秒數,time()會導致語法錯誤,time(0)表示秒數不進行存儲*/
srand((int)time(0));
list<int> l(20);
generate(l.begin(), l.end(), random);
copy(l.begin(), l.end(), ostream_iterator<int>(cout, " "));
cout<<endl;
vector<int> V(10);
generate(V.begin(), V.end(), rand);
copy(V.begin(), V.end(), ostream_iterator<int>(cout, " "));
return 0;
}
結果: