类模板与函数对象
来源:互联网 发布:混沌与秩序2救赎数据库 编辑:程序博客网 时间:2024/06/10 10:28
# include <iostream># include <vector># include <list># include <algorithm>using namespace std;//class absInt{// public :// int operator() (int val){//// }//};//与上面的等价struct absInt{ //重载操作符:函数调用操作符 int operator() (int val){ return val<0?-val:val; }};//普通的函数模板template<typename elementType>void FuncDisplayElement(const elementType & element){ cout<<element<<" ";}//对象模板函数template<typename elementType>struct DisplayElement{ //存储状态 int m_nCount; DisplayElement(){ m_nCount = 0; } void operator() (const elementType & element) /*const 当有修改把const去掉*/{ m_nCount++; cout<<element<<" "; }};int main(){ absInt absObj;//声明一个对象 int i = -52; int j = absObj(i);//函数对象 ,会调用载操作符 cout<<j<<endl; vector<int> a; for(int k=0;k<10;k++){ a.push_back(k); } list<char> b; for(char c='a';c<'k';c++){ b.push_back(c); } //STL算法 // 1.for_each算法的目的,从a.begin开始,到a.end结束,调用 DisplayElement的函数模板 for_each(a.begin(),a.end(),DisplayElement<int>()); cout<<endl<<endl; for_each(b.begin(),b.end(),DisplayElement<char>()); cout<<endl<<endl; DisplayElement<int> mResult; mResult = for_each(a.begin(),a.end(),mResult);//返回一个新的状态 cout<<mResult.m_nCount<<endl<<endl; return 0;}
0 0
- 类模板与函数对象
- 函数模板与模板函数 类模板与模板类
- 类模板与模板类 &&函数模板与模板函数
- 函数模板与类模板
- 函数模板与类模板
- 类模板与函数模板
- 函数模板与类模板
- 函数模板与类模板
- 函数模板与类模板
- 模板函数与类模板
- 函数模板与类模板
- 函数模板与类模板
- 函数模板与类模板
- 函数模板与类模板
- 模板函数与模板类
- 函数模板与类模板
- 函数模板与类模板
- 函数模板与类模板
- Block专题
- 坐标的平移旋转
- JavaScript Core -- 事件
- Android沉浸式状态栏简单实现
- hdu 5500 Reorder the books
- 类模板与函数对象
- windows下administrator账户启用或关闭
- cmake+gcc解决extended initializer lists only available with -std=c++11 or -std=gnu++11
- CloudStack 4.4+KVM之KVM计算节点安装
- JavaScript Core -- 理解闭包
- 惯性导航之认识四元数(四)
- UML——包图
- 15.Swift 录制音频
- 使用 timeit 模块