C++ map按key或按value排序

map按key排序

(1)map默认按照 key 从小到大排序

map<string,int> hash;
//等价于 map<string,int, less<string>> hash;

(2)map按照 key 从大到小排序

map<string,int, greater<string> > hash;

map按value值排序

按 value 值排序没有直接的方法,但我们可以把 map 存到 vector 中,再对 vector 进行自定义排序

  1. 重写 vector 的 cmp 函数
bool cmp(pair<string,int> a, pair<string, int> b) {
return a.second < b.second;//从小到大排序
}
  1. 把 map 存到 vector 中进行排序
map<string,int> m;
m["a"] = 2;
m["b"] = 3;
m["c"] = 1;
vector<pair<string,int> > vec(m.begin(),m.end());
/*
*vec(m.begin(),m.end()代表用map的所有元素创建vector
*/
sort(vec.begin(),vec.end(),cmp);

本文作者:kingwzun

本文链接:https://www.cnblogs.com/kingwz/p/15611888.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   kingwzun  阅读(2455)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起