STL 比较器

一.什么是 tmd 比较器?

在C++的STL(标准模板库)中,比较器通常用于对容器中的元素进行排序或查找。STL提供了多种比较器的方式,主要通过函数对象或者lambda表达式来实现。以下是一些常见的比较器示例:

1.函数对象(Function Object): 使用函数对象是一种常见的比较元素的方式。你可以创建一个类,该类重载了operator(),然后将对象作为比较器传递给STL算法。

struct Comparator {
    bool operator()(const T& a, const T& b) const {
        return a < b; // 你可以根据需要更改比较条件
    }
};

std::vector<int> myVector = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
std::sort(myVector.begin(), myVector.end(), Comparator());

2.Lambda 表达式: 使用 lambda 表达式是一种更为方便的比较元素的方式,它不需要创建单独的函数对象。

std::vector<int> myVector = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
std::sort(myVector.begin(), myVector.end(), [](const T& a, const T& b) {
    return a < b; // 你可以根据需要更改比较条件
});

3.使用预定义比较器: STL还提供了一些预定义的比较器,例如std::lessstd::greater。你可以在STL算法中使用它们。

std::vector<int> myVector = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
std::sort(myVector.begin(), myVector.end(), std::less<int>());
// 或者
std::sort(myVector.begin(), myVector.end(), std::greater<int>());

无论你选择哪种方式,比较器都可以根据你的需求进行自定义,以确保容器中的元素按照你期望的方式进行排序或比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值