算法库(六)
来源:互联网 发布:替代硕鼠的软件 编辑:程序博客网 时间:2024/06/08 20:18
14. generate:将(仿)函数得到的值赋值给输入范围的各个元素.
generate_n:将(仿)函数得到的值赋值给first-first+n的各个元素
class IntSequence
{
private:
intvalue;
public:
IntSequence( intinitialValue ):value( initialValue ){}
int operator()()
{
returnvalue ++;
}
intretValue()
{
returnvalue;
}
};
int main()
{
vector<int>coll;
IntSequence seq(10);
generate_n( back_inserter( coll),9,IntSequence( 1 ) );
generate( coll.begin() +2,coll.end(),IntSequence( 2 ) );
copy(coll.begin(),coll.end(),ostream_iterator<int>(cout," " ) );
cout<<"\n";
generate( coll.begin(),coll.end(),seq);
copy(coll.begin(),coll.end(),ostream_iterator<int>(cout," " ) );
cout<<"\nseq的状态为"<<seq.retValue();
system( "pause");
return0;
}
输出结果:
1 2 2 3 4 5 6 7 8
10 11 12 13 14 15 1617 18
seq的状态为:10请按任意键继续. . .
注意:仿函数是有状态的.即可把其当做”类”.从generate(_n)函数可以看出其是将seq以passed by value的方式传给函数的局部仿函数.并不影响传递之前的状态如果想要把改变的值传回给调用者,可以使用引用.
- 算法库(六)
- 六 算法
- 算法六
- 六种常用算法
- 算法 六度分离
- (六) 图算法
- 排序算法(六)
- 六种查找算法
- 【六】朴素贝叶斯算法
- 标准模板库(六):STL算法函数介绍
- 第五六周【项目1 - 建立顺序栈算法库】
- 第五六周【项目2 - 建立链栈算法库】
- 百度分词算法详解【六】
- 算法学习(六)--优先队列
- 基础算法(六) --- 递推法
- 堆排序----(排序算法六)
- 排序算法六:快速排序
- 六种排序算法总结
- 算法库(五)
- 字符组转译序列
- 关于函数调用中的const参数
- HSSF
- C++判断JSON字符串的合法性
- 算法库(六)
- OpenCV码源笔记——tree_engine(CvDTree,CvBoost,CvRTrees,CvERTrees,CvGBTrees)
- 私有IP
- MFC 文本框
- 进程(一)操作系统原理及Linux进程源语
- Adaboost算法介绍
- iphone开发之导航控制器的使用
- 第十周任务一
- jdom学习:读取xml文件