C++中map按value排序
来源:互联网 发布:小乃海苔便当知乎 编辑:程序博客网 时间:2024/05/16 08:19
我们知道C++ STL中的map是以key排序的。
int main(){ map<int, int> iMap; iMap[1] = 20; iMap[2] = 10; iMap[5] = 30; iMap[4] = 0; for (auto it = iMap.begin(); it != iMap.end(); it++) cout << it->first << ':' << it->second << '\n'; return 0;}
运行结果:
那如果我要以value进行排序呢?
方案:将map的key和value以pair的形式装到vector中,对vector进行排序。
(下面使用unordered_map,而没有使用map)
int main(){ unordered_map<int, int> iMap; iMap[1] = 20; iMap[2] = 10; iMap[5] = 30; iMap[4] = 0; vector<pair<int, int>> vtMap; for (auto it = iMap.begin(); it != iMap.end(); it++) vtMap.push_back(make_pair(it->first, it->second)); sort(vtMap.begin(), vtMap.end(), [](const pair<int, int> &x, const pair<int, int> &y) -> int { return x.second < y.second; }); for (auto it = vtMap.begin(); it != vtMap.end(); it++) cout << it->first << ':' << it->second << '\n'; return 0;}
运行结果:
这是从小大的排序结果,如果想要从大到小的排序,将sort函数中的第三个参数中Lambda表达式重点额函数体修改为:return y.second < x.second;即可!
1 0
- Map中按value值排序
- C++中map按value排序
- Java中Map按Value排序
- 【C++】map根据value排序
- Map按value排序
- Map按value排序
- map按value排序
- map 按value排序
- map按value排序
- map 按value 排序
- java Map 按value排序
- Java按Value排序Map
- Java Map按Value排序
- JAVA中Map按value值进行逆序排序
- 对Map中数据,按value值排序方法
- 对Map中数据,按value值排序方法
- Java中Map按value值进行排序
- STL中map按值(value)排序
- 1.4 C++程序的编写和实现
- js 调用多参数oc代码错误纪录
- iOS学习笔记之-C语言基础01
- SSH基本原理
- 启动界面的添加方法
- C++中map按value排序
- Oracle Linux 6 下 Oracle RDBMS Server 11gR2 Preinstall RPM 包说明
- hdu1176 (简单逆dp)
- xcode7,ios9 部分兼容设置 bitcode
- MYSQL查询优化:使用索引
- 1.5 如何创建C++程序
- 关于JAVA中的权限修饰符
- 欢迎邮件联系!
- wireshark 用法