在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< ...
随机推荐
- evaluate-reverse-polist-notation leetcode C++
Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are+,-,*, ...
- 当src获取不到图片,onerror可指定一张默认的图片
<img src="img/789.png" onerror="javascript:this.src='img/123.png';" alt=" ...
- (1)Zookeeper在linux环境中搭建集群
1.简介 ZooKeeper是Apache软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务.同步服务和命名注册.ZooKeeper的架构通过冗余服务实现高可用性.Zookeeper ...
- k8s入坑之路(4)kubenetes安装
三种安装方法: 1.kubeadm 2.kubespray 3.二进制安装 kubespray安装kubernetes集群 优点: 1.kuberspray对比kubeadm更加简洁内部集成了kube ...
- JavaScript 简单介绍
一.简介 JavaScript是一门面向对象的动态语言,他一般用来处理以下任务: 修饰网页 生成HTML和CSS 生成动态HTML内容 生成一些特效 提供用户交互接口 生成用户交互组件 验证用户输入 ...
- Obsidian中如何记录自己的灵感?
在生活中当中你是否会在某个瞬间产生一个想法,但没过多久就想不起来了,正所谓灵感转瞬即逝,那我们不妨在灵感出现的时候顺手将他记录下来.记录的过程要求简单.方便且不会花费我们太多时间,下面我们介绍一下如何 ...
- fabric运行错误汇总
Error generating signCA for org org1.example.com: Failed storing key [ECDSAP256]: Failed storing ECD ...
- Java学习(九)
今天先学习了内联框架的知识,使用iframe的标签,还有超链接的知识. 做了个小实践 <!DOCTYPE html> <head> <meta charset=" ...
- 72.Financial Management
描述 Larry graduated this year and finally has a job. He's making a lot of money, but somehow never se ...
- IIS设置URL重写,实现页面的跳转的重定向方法
默认IIS是不提供URL重写模块的. 请注意,不要将IIS默认的HTTP重定向理解为url重写. 安装url重写模块 url重写,是要从iis的应用市场下载url重写组件才可以的. URL重写工具的下 ...