#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
double gen1(double, double){return 1;}
double gen1(double){return 2;}
void Genetate(double* _beg, double* _end, double (*op)(double, double))
{
for (;_beg!=_end;++_beg)
*_beg=op(0,0);
}
//Genetate是一个普通函数的时候根据原型可以匹配
//Genetate是一个模板的时候无法解析
int main()
{
vector<double> v(20);
Genetate(v.begin(),v.end(),gen1);
copy(v.begin(),v.end(),ostream_iterator<double>(cout, "\t"));
return 0;
}