C++中set容器比较器greater
时间: 2024-11-13 10:24:32 浏览: 27
在C++中,`std::set` 是一种关联容器,它自动维护元素的顺序(默认为升序),并不允许有重复的元素。当你想要以降序排列元素时,可以使用 `std::greater` 比较器。
`std::greater` 是一个模板类,定义了一个用于比较两个类型的对象的运算符 `operator()`。当与 `std::set` 结合使用时,它会使得集合内的元素按照降序排列。
示例:
```cpp
#include <iostream>
#include <set>
using namespace std;
// 使用 std::greater 对整数进行降序排列
template<typename T>
struct CustomGreater {
bool operator()(const T& x, const T& y) const {
// 当 x 大于 y 时返回 true,表示 x 应该排在 y 前面
return x > y;
}
};
int main() {
set<int, CustomGreater<int>> mySet;
mySet.insert(5);
mySet.insert(1);
mySet.insert(3);
// 输出结果:{5, 3, 1}
for (auto i : mySet)
cout << i << " ";
return 0;
}
[^1]: 使用自定义比较器 `CustomGreater` 代替 `std::greater`
: `std::greater` 实现的基本逻辑就是比较两个对象是否满足降序条件
```
阅读全文
相关推荐


















