STL函数对象
概念:重载函数调用操作符的类,其对象常称为函数对象 函数对象使用重载的()时,行为类似函数调用,也叫仿函数
本质:函数对象(仿函数)是一个类,不是一个函数
函数对象的使用:
特点:函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值
函数对象超出普通函数的概念,函数对象可以有自己的状态
函数对象可以作为参数传递
谓词
返回bool类型的仿函数称为谓词
如果operator()接收一个参数,那么叫做一元谓词
如果operator()接收两个参数,那么叫做二元谓词
举例:(一元谓词)二元谓词有2个参数,道理一样
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
class greaterFive
{
public:
bool operator()(int val)
{
return val > 5;
}
};
void test01()
{
vector<int> v;
for (int i = 0; i < 10; i++)
{
v.push_back(i);
}
vector<int>::iterator pos=find_if(v.begin(), v.end(), greaterFive());