C++map如何按值排序
来源:互联网 发布:java中的类命名规范 编辑:程序博客网 时间:2024/06/07 15:36
因为sort函数只能排序类似vector这样的类,map是不能排序的。所以需要将map转换为vector表示,那就需要pair
//map数据按照值来排序void MapSortOfValue(vector<pair<int,string> >& vec,map<string,int>& m){ for (map<string, int>::iterator it = m.begin(); it != m.end(); it++) vec.push_back(make_pair(it->second, it->first)); sort(vec.begin(), vec.end());}
sort默认按照first从小到大排序。
例子如下:
#include <iostream>#include <vector>#include <map>#include <algorithm>using namespace std;//map数据按照值来排序void MapSortOfValue(vector<pair<int,string> >& vec,map<string,int>& m){ for (map<string, int>::iterator it = m.begin(); it != m.end(); it++) vec.push_back(make_pair(it->second, it->first)); sort(vec.begin(), vec.end());}int main(){ vector<pair<int, string> > vec; map<string, int> m; m["ABC"] = 4; m["ACB"] = 2; m["CDB"] = 5; m["ADB"] = 1; cout << "排序前" << endl; for (map<string, int>::iterator it = m.begin(); it != m.end(); it++) cout << it->first.c_str() << " " << it->second << endl; cout << "---------------------" << endl; MapSortOfValue(vec, m); cout << "排序后" << endl; for (vector<pair<int, string> >::iterator it = vec.begin(); it != vec.end(); it++) cout << it->first << " " << it->second.c_str() << endl; return 0;}
输出结果如图:
阅读全文
0 0
- C++map如何按值排序
- 如何对于Map类型按值排序
- C++中如何给map按值排序
- map按值排序
- map按值排序
- Map 按值排序
- map按值排序
- map按值排序
- map按值排序
- Map按值排序
- STL map 按值排序
- STL map 按值排序
- Map按值进行排序
- java Map 按值排序
- map 按键按值排序
- Map排序---按value值排序
- 【C++】map根据value排序
- Java中如何实现Map的按值Value(非Key)排序
- 树的非递归遍历
- 在 Ubuntu 11.10 上安装 Sun Grid Engine
- C++入门基本知识
- Java常见的几种排序方法
- 函数式接口和lambda表达式
- C++map如何按值排序
- LeetCode 重建BST
- Python快速入门(5)-列表与字典推导式
- java.io.StreamCorruptedException: invalid type code: AC
- 微信服务器和第三方服务器之间究竟是通过什么方式进行对话的?
- 操作系统概念(高等教育出版社,第七版)复习——第十一章:文件系统实现
- shiro从数据库中查询角色和权限
- HashMap死循环分析
- Spark调优之Cloudera博客(Part 2)