STL:generate()和generate_n()

来源:互联网 发布:php点餐系统 编辑:程序博客网 时间:2024/05/17 04:41

generate()

功能:用指定函数对象产生的值去给容器指定范围内元素赋值

template<class ForwardIterator, class Generator>   void generate(      ForwardIterator _First,       ForwardIterator _Last,       Generator _Gen   );

generate_n()

功能:一个函数对象产生的值给一定的范围内指定数目的容器元素赋值

template<class OutputIterator, class Diff, class Generator>   void generate_n(      OutputIterator _First,       Diff _Count,       Generator _Gen   );

example:

#include <iostream>#include <vector>#include <algorithm>using namespace std;class IntSequence{private:int m_Value;public:IntSequence(int value):m_Value(value){}int operator()(){return m_Value++;}};int main(){vector<int> IntVec;generate_n(back_inserter(IntVec),9,IntSequence(1));for(vector<int>::iterator it=IntVec.begin();it!=IntVec.end();++it){cout<<*it<<" ";}cout<<endl;generate(++IntVec.begin(),--IntVec.end(),IntSequence(10));for(vector<int>::iterator it=IntVec.begin();it!=IntVec.end();++it){cout<<*it<<" ";}cout<<endl;return 0;}

结果:

1,2,3,4,5,6,7,8,9

1,10,11,12,13,14,15,16,9

原创粉丝点击