C++ 什么是伪函数,以及伪函数的使用

函数指针有缺点,最重要的是它无法持有自己的状态(局部状态),也无法达到组件技术中的可适配性(也就是无法再将来某些修饰徐条件加上,以达到改变其状态)。因此,STL算法的特殊版本所接受的所谓的”条件“或”策略“或”一整组操作“都是以仿函数呈现的。

所谓仿函数(functor)就是使用起来像函数一样的东西。如果对某个class进行operator()重载,它就是一个仿函数类,该函数就是一个仿函数

//仿函数类
template<class T>
struct Greater
{
     
	//仿函数
	bool operator()(const T& a, const T& b)
	{
     
		return a > b;
	}
};

使用示例:

void test()
{
     
	Greater<int> g;
	//原型
	bool ret = g.operator()(13, 14);
	cout << ret << endl;
	//简写形式-使用方法和函数类似
	ret = g(13, 14);
	cout << ret << endl;
}

运行结果:
C++ 什么是伪函数,以及伪函数的使用_第1张图片

你可能感兴趣的:(C++,算法)