1.将map转化为vector类型

2.使用sort函数对vector进行排序,写出compare比较器函数

3.比较器中指明按照第几个元素来排序

 1 #include <iostream>
2 #include <map>
3 #include <algorithm>
4 #include <vector>2017-04-19
5 using namespace std;
6
7 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
8 typedef pair<string, int> PAIR;
9 //第一种方式
10 struct ValueSort{
11 /*
12 bool operator()(const pair<string,int> &val1,const pair<string,int> &val2) {
13 return val1.second < val2.second;
14 }
15 */
16 bool operator()(const PAIR& lhs, const PAIR& rhs) {
17 return lhs.second > rhs.second;
18 }
19 };
20
21 //第二种方式
22 bool cmp_by_value(const PAIR& lhs, const PAIR& rhs) {
23 //return lhs.second < rhs.second || (lhs.second == rhs.second && lhs.first >= rhs.first);
24 return lhs.second < rhs.second;//第二个元素从小到大排序
25 }
26
27 int main() {
28 map<string, int> name_score_map;
29 name_score_map["LiMin"] = 90;
30 name_score_map["ZiLinMi"] = 79;
31 name_score_map["ZiLinMi"] = 90;
32 name_score_map["BoB"] = 92;
33 name_score_map.insert(make_pair("Bing",99));
34 name_score_map.insert(make_pair("Albert",86));
35 PAIR pout;
36 //把map中元素转存到vector中
37 vector<PAIR> name_score_vec(name_score_map.begin(), name_score_map.end());
38
39 sort(name_score_vec.begin(), name_score_vec.end(), cmp_by_value);//第一种
40 //sort(name_score_vec.begin(), name_score_vec.end(), ValueSort());//第二种
41
42 for (int i = 0; i != name_score_vec.size(); ++i) {
43 pout = name_score_vec[i];
44 cout <<pout.first<<" "<<pout.second<<endl;
45 }
46
47 return 0;
48 }

在C++的map类型中按value排序的更多相关文章

  1. C++容器(四):map类型

    map 类型 map是键-值对的集合.map类型通常可以理解为关联数组:可以使用键作为下标来获取一个值,正如内置数组类型一样.而关联的本质在于元素的值与某个特定的键相关联,而非通过元素在数组内的位置来 ...

  2. zk框架中利用map类型传值来创建window,并且传值

    @Command @NotifyChange("accList") public void clear(@BindingParam("id") String a ...

  3. struts2学习笔记(2)---Action中訪问ServletAPI获取Map类型的Servlet元素

    源码: strust.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts ...

  4. 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合

    package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...

  5. Map java中的map 如何修改Map中的对应元素

    Map java中的map 如何修改Map中的对应元素 Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象.         Map的接口         Map ...

  6. Flex ActionScript版本的Map类型

    ActionScript中没有Map类型,因为Object就相当于Map了.Object的属性相当于key,值相当于value. 也就是说,没有必要有Map类型.但是,这样做,也会带来一些问题,造成不 ...

  7. C++map类型

    map是键-值对的集合,可以理解为关联数组,可以使用键作为下标来获取一个值 本文地址:http://www.cnblogs.com/archimedes/p/cpp-map.html,转载请注明源地址 ...

  8. Hibernate执行原生SQL返回List<Map>类型结果集

    我是学java出身的,web是我主要一块: 在做项目的时候最让人别扭的就是hibernate查询大都是查询出List<T>(T指代对应实体类)类型 如果这时候我用的联合查询,那么返回都就是 ...

  9. Play Framework常用标签list,set,如何遍历list、map类型数据

    最近一段时间的项目都是在Play这个框架上进行开发的,挺强大的,但不足之处也挺多的.今天分享下play中强大的标签,遍历list,map类型的数据的用法. 遍历单纯的list数据,例如:List< ...

随机推荐

  1. 洛谷 P4555 [国家集训队]最长双回文串

    链接: P4555 题意: 在字符串 \(S\) 中找出两个相邻非空回文串,并使它们长度之和最大. 分析: 直接使用马拉车算法求出每个点扩展的回文串.如果枚举两个回文串显然会超时,我们考虑切割一个长串 ...

  2. 彻底搞通TCP滑动窗口

    在我们当初学习网络编程的时候,都接触过TCP,在TCP中,对于数据传输有各种策略,比如滑动窗口.拥塞窗口机制,又比如慢启动.快速恢复.拥塞避免等.通过本文,我们将了解滑动窗口在TCP中是如何使用的. ...

  3. VUE项目实现主题切换

    需求是 做一个深色主题和浅色主题切换的效果 方法一 多套css 这个方法也是最简单,也是最无聊的. <!-- 中心 --> <template> 动态获取父级class名称,进 ...

  4. MySQL 默认隔离级别是RR,为什么阿里这种大厂会改成RC?

    我之前写过一篇文章<为什么MySQL选择REPEATABLE READ作为默认隔离级别?>介绍过MySQL 的默认隔离级别是 Repeatable Reads以及背后的原因. 主要是因为M ...

  5. Qt 使用大神插件快速创建树状导航栏

    前言 本博客仅仅记录自己的采坑过程以及帮助网友避坑,方便以后快速使用自定义控件,避免重复出错. 下载插件 大神 Github Qt 自定义控件项目地址:https://github.com/feiya ...

  6. robot_framewok自动化测试--(3)测试项目与测试套件的概念

    测试项目与测试套件的概念 如果你查看当前所创建的项目会发现,"test_project"是一个目录: "test_suit"则是一个 txt 文件: " ...

  7. celery tasks always in pending

    Result backend doesn't work or tasks are always in PENDING state¶All tasks are PENDING by default, s ...

  8. 纯前端实现词云展示+附微博热搜词云Demo代码

    前言 最近工作中做了几个数据可视化大屏项目,其中也有用到了词云展示,以前做词云都是用python库来生成图片显示的,这次用了纯前端的实现(Ctrl+V真好用),同时顺手做个微博热搜的词云然后记录一下~ ...

  9. part 36 AngularJS route reload

    In this video we will discuss angular route service reload() method. This method is useful when you ...

  10. mac下将python2.7改为python3

    mac下将python2.7改为python3 查看当前电脑python版本 python -V 修改.bash_profile文件 vi ~/.bash_profile //编辑bash_profi ...