第一部分 --- 函数对象的概念
通过重载了函数调用操纵符()的类实例化出的对象就是函数对象
当函数对象调用函数调用符重载函数的时候,就是一个仿函数形式
第二部分 --- 函数对象的使用
这个第二个特点的意思就是:在普通的函数中所有的临时变量和参数都会在函数调用结束后被销毁,除非是全局变量/静态局部变量
但是在仿函数中,由于我们实际是通过对象调用成员函数,成员函数中可以有成员变量,而成员变量不会在函数执行完毕后就被销毁
第三部分 --- 谓词概念
对象调用函数调用运算符重载函数(operator())时为仿函数,如果 operator() 的返回值是bool类型的话,那么这个仿函数被称为谓词
如果 bool operator() ( 这里有一个参数的话,就是一元谓词;两个参数就是二元谓词)
第四部分 --- 谓词实例
如果参数列表中出现了pred的话,则我们需要向这个参数列表中传一个谓词(仿函数)
传仿函数的时候我们除了传函数对象通过点操作符调用重载函数这种形式外
还可以传匿名函数对象调用重载函数 --- 就是直接写个重载函数调用就可以了
如下图最后一个参数:
谓词中的函数返回值是我们想要为真的情况