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