一:起因
(0)提到C++ STL,首先被人想到的是它的三大组件:Containers(容器), Iterators(迭代器), Algorithms(算法)。容器为用户提供了常用的数据结构(如,vector,list,deque,stack,map,multimap,set,multiset,外加string),算法大多是独立于容器的常用的基本算法(一般在algorithm头文件中,其中sort比较常用),迭代器是由容器提供的一种接口,算法通过迭代器来操控容器。详情请看 博客 大话 函数指针 和 指针函数 和 大话 回调函数 和 枚举
(1)接下来要介绍的是另外的一种组件,函数对象(Function Object,JJHou译作Functor仿函数)(2)定义:仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了; 函数对象(仿函数)——顾名思义,函数对象首先是一个对象,即某个类的实例。其次,函数对象的行为和函数一致,即是说可以像调用函数一样来使用函数对象,这种行为是通过重载类的()操作符来实现的,举例说明:
class FunctionObjectType
{
public: