深入解析神秘的 --- 仿函数
来源:互联网 发布:win10声音增强软件 编辑:程序博客网 时间:2024/05/17 06:10
一,概述
仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。
有些功能的的代码,会在不同的成员函数中用到,想复用这些代码。
1)公共的函数,可以,这是一个解决方法,不过函数用到的一些变量,就可能成为公共的全局变量,再说为了复用这么一片代码,就要单立出一个函数,也不是很好维护。
2)仿函数,写一个简单类,除了那些维护一个类的成员函数外,就只是实现一个operator(),在类实例化时,就将要用的,非参数的元素传入类中。
二,仿函数(functor)在各编程语言中的应用
1)C语言使用函数指针和回调函数来实现仿函数,例如一个用来排序的函数可以这样使用仿函数
2)在C++里,我们通过在一个类中重载括号运算符的方法使用一个函数对象而不是一个普通函数。
要使用STL内建的仿函数,必须包含<functional>头文件。而头文件中包含的仿函数分类包括
1)算术类仿函数
加:plus<T>
减:minus<T>
乘:multiplies<T>
除:divides<T>
模取:modulus<T>
否定:negate<T>
例子:
等于:equal_to<T>
不等于:not_equal_to<T>
大于:greater<T>
大于等于:greater_equal<T>
小于:less<T>
小于等于:less_equal<T>
从大到小排序:
3)逻辑运算仿函数
逻辑与:logical_and<T>
逻辑或:logical_or<T>
逻辑否:logical_no<T>
- 深入解析神秘的 --- 仿函数
- 【C++ STL】深入解析神秘的 --- 仿函数
- 【C++ STL】深入解析神秘的 --- 仿函数
- 【C++ STL】深入解析神秘的 --- 仿函数
- 【C++ STL】深入解析神秘的 --- 仿函数
- inline 函数的深入解析
- 深入解析array_merge函数的用法 php
- PHP register_shutdown_function函数的深入解析
- PHP register_shutdown_function函数的深入解析
- 深入解析GDAL库的RasterIO()函数
- c++中基类虚函数表的深入解析
- 深入解析array_merge函数的用法 php
- bind1st深入理解--仿函数 函数对象
- js 函数深入解析
- 深入解析虚函数
- 仿函数的使用
- 仿函数的回顾
- 仿函数的使用
- 快速提高UI开发效率的应用框架,
- Android 自定义View (二) 进阶
- spring事务到底用于service层还是dao层
- SpringBoot的日志管理
- c++ setprecision 的是一共显示多少位的意思,包括整数部分,而且是四舍五入
- 深入解析神秘的 --- 仿函数
- 集成学习(Ensemble Learning )简介
- Nginx
- EOJ 3264 蚂蚁(模拟+栈)
- Python数据处理笔记——numpy篇(一)
- Mybatis
- 过滤器,拦截器,定时器的使用和配置
- jsp+JavaBean+servlet设计模式
- js完美转换阿拉伯数字为数字大写(原创)