C++仿函数

在C++中,我们经常需要对类中的元素进行比较,例如在排序、查找等操作中。为了使类更加灵活,我们可以通过自定义比较函数来实现不同的比较方式。在本文中,我们将探讨如何在类中使用仿函数和 Lambda 表达式来定义自定义比较函数。

1. 仿函数(Functor)的使用

仿函数是一个类对象,它的实例可以像函数一样被调用。我们可以通过重载函数调用运算符 operator() 来实现仿函数。以下是一个简单的示例,演示了如何在类中使用仿函数来实现自定义比较:

解释

#include <iostream>

// 定义一个比较类
class MyComparator {
public:
    // 重载函数调用运算符
    bool operator()(const int& a, const int& b) const {
        return a > b; // 自定义比较规则
    }
};

// 使用比较类的类模板
template <typename T, typename Compare = MyComparator>
class MyClass {
public:
    // 成员变量
    T data;

    // 构造函数,接受比较类作为参数
    MyClass(const T& d, const Compare& cmp = Compare()) : data(d), comparator(cmp) {}

    // 比较函数
    bool compare(const T& other) const {
        return comparator(data, other);
    }

private:
    Compare comparator; // 保存比较类的实例
};

int m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值