问题及代码:
#include <iostream>
#include<algorithm>
#include<functional>
#include<vector>
#include<iterator>
using namespace std;
class evenByTwo
{
private:
int x;
public:
evenByTwo():x(0){}
int operator()()
{
return x+=2;
}
};
int main()
{
vector<int>ivector3(4);
ostream_iterator<int>output(cout," ");
fill(ivector3.begin(),ivector3.end(),-1);
copy(ivector3.begin(),ivector3.end(),output);
cout<<endl;
generate(ivector3.begin(),ivector3.end(),evenByTwo());
copy(ivector3.begin(),ivector3.end(),output);
cout<<endl;
return 0;
}
运行结果:
知识点总结:
虽然这个程序很难理解,但是多加练习,会慢慢理解的。
学习心得: