在C++的map类型中按value排序
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排序的更多相关文章
- C++容器(四):map类型
map 类型 map是键-值对的集合.map类型通常可以理解为关联数组:可以使用键作为下标来获取一个值,正如内置数组类型一样.而关联的本质在于元素的值与某个特定的键相关联,而非通过元素在数组内的位置来 ...
- zk框架中利用map类型传值来创建window,并且传值
@Command @NotifyChange("accList") public void clear(@BindingParam("id") String a ...
- struts2学习笔记(2)---Action中訪问ServletAPI获取Map类型的Servlet元素
源码: strust.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts ...
- 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合
package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...
- Map java中的map 如何修改Map中的对应元素
Map java中的map 如何修改Map中的对应元素 Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象. Map的接口 Map ...
- Flex ActionScript版本的Map类型
ActionScript中没有Map类型,因为Object就相当于Map了.Object的属性相当于key,值相当于value. 也就是说,没有必要有Map类型.但是,这样做,也会带来一些问题,造成不 ...
- C++map类型
map是键-值对的集合,可以理解为关联数组,可以使用键作为下标来获取一个值 本文地址:http://www.cnblogs.com/archimedes/p/cpp-map.html,转载请注明源地址 ...
- Hibernate执行原生SQL返回List<Map>类型结果集
我是学java出身的,web是我主要一块: 在做项目的时候最让人别扭的就是hibernate查询大都是查询出List<T>(T指代对应实体类)类型 如果这时候我用的联合查询,那么返回都就是 ...
- Play Framework常用标签list,set,如何遍历list、map类型数据
最近一段时间的项目都是在Play这个框架上进行开发的,挺强大的,但不足之处也挺多的.今天分享下play中强大的标签,遍历list,map类型的数据的用法. 遍历单纯的list数据,例如:List< ...
随机推荐
- STM32单片机的学习方法(方法大体适用所有开发版入门)
1,一款实用的开发板. 这个是实验的基础,有时候软件仿真通过了,在板上并不一定能跑起来,而且有个开发板在手,什么东西都可以直观的看到,效果不是仿真能比的.但开发板不宜多,多了的话连自己都不知道该学哪个 ...
- STM32入门-STM32时钟系统,时钟初始化配置函数
在前面推文的介绍中,我们知道STM32系统复位后首先进入SystemInit函数进行时钟的设置,然后进入主函数main.那么我们就来看下SystemInit()函数到底做了哪些操作,首先打开我们前面使 ...
- OKhttp3的使用教程
首先在build.gradle下的dependencies下添加引用. implementation "com.squareup.okhttp3:okhttp:4.9.0" 然后编 ...
- CentOS7 安装oracle 11g (11.2.0.1.0)
1.安装依赖: #yum -y install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ks ...
- 2021 祥云杯 wp
52 web ezyii https://pan.baidu.com/s/1j7IJm9xiea5FvBhPMkPNoQ 提取码GAME <?php include("closure/ ...
- Linux之间的文件传输方式
大数据集群经常涉及文件拷贝,我在学习大数据时总结了几种方式 三台主机:192.168.10.100.192.168.10.101.192.168.10.102有一个一样的用户:swcode 做过映射关 ...
- [cf1326F]Wise Men
对答案序列求一个高维后缀和,再通过差分将其解出,后者复杂度为$o(n2^{n})$ 对于求后缀和后的结果,即01序列仅要求1处有边(不要求0处没有边),那么也即要求将原图划分为若干条长度给定且没有公共 ...
- [noi253]A
定义f[i][j]表示从(i,j)走到最后一行的期望,不断从下往上dp那么对于每一行都可以得到m个方程. 但由于这m个方程不是DAG,因此考虑用高斯消元,但时间复杂度不对. 观察方程可以发现如果不断将 ...
- 提升AI智能化水平,打造智慧新体验
内容来源:华为开发者大会2021 HMS Core 6 AI技术论坛,主题演讲<提升AI智能化水平,打造智慧新体验>. 演讲嘉宾:沈波,华为消费者AI与智慧全场景ML Kit产品总监 今天 ...
- No 'Access-Control-Allow-Origin' header: 跨域问题踩坑记录
前言 前两周在服务器上部署一个系统时,遇到了跨域问题,这也不是第一次遇到跨域问题了,本来以为解决起来会很顺利,没想到解决过程中遇到了很多坑,所以觉得有必要写一篇博客记录一下这个坑. 问题产生原因 本来 ...