仿函数的学习

仿函数 也叫 函数对象

仿函数是什么东西?

当你第一眼看到下面的代码的时候,你会觉得它是一个函数的调用:

cpp 复制代码
bool result = less(a, b);

但是我如果告诉你,less 是一个我自定义的一个类的对象呢?

cpp 复制代码
class Less
{
public:
    bool operator()(int x, int y)
    {
        return x < y;
    }
};

然后再这样:

cpp 复制代码
Less less;

int a = 5;
int b = 10;

bool result = less(a, b); // 调用 less.operator()(a, b)

这种看起来像函数调用,但其实不是函数调用,这种就是仿函数

它的原理可以这样来理解:

这个仅仅针对int ,写个模版更好一些:

cpp 复制代码
template<class T>
class Less
{
public:
	bool operator()(const T& x, const T& y)
	{
		return x < y;
	}

};

为什么要有这个仿函数

为了替代函数指针,(因为函数指针太恶心了)用仿函数更容易理解

相关推荐
musk1212几秒前
人工智能学习大纲,豆包深入研究版
人工智能·学习
就是ping不通的蛋黄派7 分钟前
数据结构与算法—线性表(C++描述)
数据结构·c++
胡童嘉11 分钟前
长沙烈焰鸟网络科技有限公司实习day13日记
功能测试·学习·职场和发展·游戏引擎·cocos2d
linly121939 分钟前
ERP学习笔记-时域分析
笔记·学习
烤麻辣烫1 小时前
23种设计模式(新手)-3接口隔离原则
java·开发语言·学习·设计模式·intellij-idea
十安_数学好题速析1 小时前
不等证明:从柯西不等式到裂项相消
笔记·学习·高考
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [kernel]signal
linux·笔记·学习
小呀小萝卜儿2 小时前
2025-11-17 学习记录--Python-机器学习作业:项目1 - PM2.5预测
python·学习·机器学习
杜子不疼.2 小时前
【C++】深入解析AVL树:平衡搜索树的核心概念与实现
android·c++·算法
永远不打烊2 小时前
c++11 之 统一初始化(Uniform Initalization)
c++·程序员