map按value排序的问题
来源:互联网 发布:asp.net源码下载 编辑:程序博客网 时间:2024/06/05 03:48
参考 http://blog.csdn.net/acidgl8757/article/details/17416439
实际上对map是红黑树实现的非线性的容器,不能直接使用迭代的sort算法对map中的value进行排序。所以需要将map的pair<key,value> 转化到vector之类的线性容器之中实现排序功能。而且排序的结果存放在你转化的容器里面,对map的原值不会产生影响。
typedef pair<string, int> PAIR; bool operator< (const PAIR& lhs, const PAIR& rhs) { return lhs.second < rhs.second; } static bool com_map_value(const PAIR& lhs, const PAIR& rhs){ return lhs.second < rhs.second;}int main() { map<string, int> name_score_map; name_score_map["LiMin"] = 90; name_score_map["ZiLinMi"] = 79; name_score_map["BoB"] = 92; name_score_map.insert(make_pair("Bing",99)); name_score_map.insert(make_pair("Albert",86)); //把map中元素转存到vector中 vector<PAIR> name_score_vec(name_score_map.begin(), name_score_map.end()); sort(name_score_vec.begin(), name_score_vec.end(), CmpByValue()); // sort(name_score_vec.begin(), name_score_vec.end(), cmp_by_value); for (int i = 0; i != name_score_vec.size(); ++i) { cout << name_score_vec[i] << endl; } return 0; }
注意:在windows中 2种sort的回调函数都行
但是在linux 中 要选择 类形式的 或者 在com_map_value设置成static的
0 0
- map按value排序的问题
- 涉及到的map按value排序问题
- map key value的排序问题
- Map按value排序
- Map按value排序
- map按value排序
- map 按value排序
- map按value排序
- map 按value 排序
- 将Map的内容按value排序
- Map的按value值排序
- C++按map的value进行排序
- C++按map的value进行排序
- 关于Map类型中对value进行排序的问题
- map的value值排序
- 根据Map的value排序
- java Map 按value排序
- Java按Value排序Map
- Linphone Android 在Linux 下编译运行
- git(3)
- 实现Activity跳转动画的五种方式
- 可能是史上最强大的js图表库——ECharts带你入门
- 0007算法笔记——【分治法】最接近点对问题
- map按value排序的问题
- NOIP2016之后
- volga-ctf-quals-2016 pwn web_of_scicen_250 writeup
- IOS学习(九)UITabView使用及几种常见的创建方式
- HDOJ--1869|六度分离
- 数控车床指令初学
- Java 学习笔记 Day002
- 树梅派1/2/3 编译
- “ Hello World” Node.js Web Server