函数对象functor的简介与用法
来源:互联网 发布:瑞达纸箱软件 编辑:程序博客网 时间:2024/04/29 17:28
²尽管函数指针被广泛用于实现函数回调,但C++还提供了一个重要的实现回调函数的方法,那就是函数对象。
²functor,翻译成函数对象,伪函数,算符,是重载了“()”操作符的普通类对象。从语法上讲,它与普通函数行为类似
²greater<>与less<>就是函数对象。
²下面举出greater<int>的简易实现原理。
struct greater
{
bool operator() (const int& iLeft, const int& iRight)
{
return (iLeft>iRight); //如果是实现less<int>的话,这边 //是写return (iLeft<iRight);
}
}
容器就是调用函数对象的operator()方法去比较两个值的大小
题目:学生包含学号,姓名属性,现要求任意插入几个学生对象到set容器中,使得容器中的学生按学号的升序排序
//学生类
class CStudent
{
public:
CStudent(int iID, string strName)
{
m_iID = iID;
m_strName = strName;
}
int m_iID; //学号
string m_strName; //姓名
}
//为保持主题鲜明,本类不写拷贝构造函数,但大家仍要有考虑拷贝构造函数的习惯
//函数对象
struct StuFunctor
{
bool operator() (const CStudent &stu1, const CStudent &stu2)
{
return (stu1.m_iID<stu2.m_iID);
}
}
//main函数
void main()
{
set<CStudent, StuFunctor> setStu;
setStu.insert(CStudent(3,"小张"));
setStu.insert(CStudent(1,"小李"));
setStu.insert(CStudent(5,"小王"));
setStu.insert(CStudent(2,"小刘"));
//此时容器setStu包含了四个学生对象,分别是按姓名顺序的“小李”,“小刘”,“小张”,“小王”
}
- 函数对象functor的简介与用法
- 函数对象(functor)简介
- 函数对象(functor)
- 函数对象 functor(整理)
- 【学习笔记】《STL使用入门教程》第四讲:容器set、函数对象functor与对组pair
- 全局函数与算子(Functor)
- [C/C++标准库]_[初级]_[函数对象functor的使用]
- 仿函数(functor)的简单实现
- stl中的仿函数functor的应用
- C++回调函数(callback)与仿函数(functor)的异同
- C++回调函数(callback)与仿函数(functor)的异同
- C++回调函数(callback)与仿函数(functor)的异同
- C++回调函数(callback)与仿函数(functor)的异同
- C++回调函数(callback)与仿函数(functor)的异同
- C++回调函数(callback)与仿函数(functor)的异同
- 【zz】C++回调函数(callback)与仿函数(functor)的异同
- C++回调函数 (callback)与仿函数(functor)的异同
- C++回调函数(callback)与仿函数(functor)的异同
- PHPVOD 免费版本搭建VMS点播视频网站-安卓手机终端用户观看Flash P2P技术流媒体视频(实例展示)
- 提高你的Java代码质量吧:多种最值算法,适时选择
- 【TCP/IP详解】第29章 网络文件系统
- 【TCP/IP详解】第30章 其他的TCP/IP应用程序
- JSTL详解(四)
- 函数对象functor的简介与用法
- Android捕获未知异常的方法
- 【TCP/IP详解】第25章 SNMP: 简单网络管理协议
- Struts2框架安全缺陷
- nyoj-76-超级台阶
- dbms_space_Admin.tablespace_migrate_to_local的实用案例
- Spring中 三种实例化bean的方式
- 关于Java 23种设计模式的有趣见解
- 工程项目与科学研究之间的关系