STL 官網學習筆記——generate

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;
}

結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章