STL::generate、generate_n用法
#include <iostream>
#include <algorithm>
class
{
public:
void CarryParams(int _step = 1)
{
step = _step;
}
int operator()()
{
static int i = 0;
return i+= step;
}
private:
int step;
}SetValue;
int SetValue2()
{
static int i = 0;
return i++;
}
int main()
{
using namespace std;
int a[10];
SetValue.CarryParams(2);//携带参数
std::generate(a, a + 10, SetValue);//给定范围用SetValue函数对象来给数组赋值
//std::generate_n(a, 10, SetValue2);//给定长度用generate_n
for(int i = 0; i < 10; i++)
{
cout<<a[i]<<endl;
}
return 0;
}