std::map 按照key排序
时间: 2023-07-20 19:23:07 浏览: 98
基于C++ map中key使用指针问题的详解
std::map 默认是按照 key 的升序进行排序的,也就是可以通过 key 的大小来进行排序。如果需要按照 key 的降序进行排序,可以通过定义一个比较函数对象来实现。比较函数对象需要重载 operator(),并返回一个 bool 值,表示两个 key 的大小关系。可以在定义 map 时,指定该比较函数对象类型作为第二个模板参数,实现自定义排序。例如:
```c++
#include <map>
#include <functional>
struct cmp {
bool operator()(const int& a, const int& b) const {
return a > b;
}
};
int main() {
std::map<int, int, cmp> my_map;
my_map[3] = 1;
my_map[2] = 2;
my_map[1] = 3;
for (const auto& i : my_map) {
std::cout << i.first << " " << i.second << std::endl;
}
return 0;
}
```
输出结果为:
```
3 1
2 2
1 3
```
阅读全文