map按照value值排序
map可以实现key到value的一一映射,如果是一对多的,我们可以使用multimap
multimap<int,int>mp;
mp.insert(make_pair(first,second));
map默认是按照key值从小到大进行排序的,如果希望按照从大到小进行排序,可以使用
map<int,int,greater<int> >mp
如果我们期望按照自己定义的规则进行排序,那么可以自己写一个排序类
#include<iostream>
#include<cstdio>
#include<map>
using namespace std;
struct cmp
{
bool operator()(const string &k1,const string &k2)
{
return k1.length()<k2.length();
}
};
int main()
{
map<string,int,cmp >mp;
mp["abc"]=;
mp["a"]=;
mp["dfdsa"]=;
map<string,int>::iterator it;
for(it=mp.begin();it!=mp.end();it++)
cout<<it->first<<" "<<it->second<<endl; }
那要如何才能实现对value的排序呢?我们想到使用sort函数,但是sort函数只能对线性的容器进行排序,所以我们需要先把map转化成一个vector。map中的元素是一个pair
#include<iostream>
#include<cstdio>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
typedef pair<string,int>PAIR;
bool cmp1(const PAIR &k1,const PAIR &k2)
{
return k1.second>k2.second;
}
struct cmp
{
bool operator()(const PAIR &k1,const PAIR &k2)
{
return k1.second>k2.second;
}
};
int main()
{
map<string,int>mp;
mp["abc"]=;
mp["a"]=;
mp["dfdsa"]=;
vector<PAIR> v(mp.begin(),mp.end());
//sort(v.begin(),v.end(),cmp());
sort(v.begin(),v.end(),cmp1);
for(int i=;i<v.size();i++)
cout<< v[i].first<<" "<<v[i].second <<endl; }
map按照value值排序的更多相关文章
- Map<String, String> map按key值排序
		
private static String buildMd5Params(Map<String, String> map) { StringBuilder result = new Str ...
 - C++ map排序(按照value值排序)_glp_hit_新浪博客
		
C++ map排序(按照value值排序)_glp_hit_新浪博客 C++ map排序(按照value值排序) (2012-07-12 14:19:51) 转载▼ 标签: ...
 - 160725、Java Map按键排序和按值排序
		
按键排序(sort by key) jdk内置的Java.util包下的TreeMap<K,V>既可满足此类需求,原理很简单,其重载的构造器之一 有一个参数,该参数接受一个比较器,比较器定 ...
 - STL map 按key值和按value值排序
		
map是用来存放<key, value>键值对的数据结构,能够非常方便高速的依据key查到对应的value. 假如存储水果和其单位价格.我们用map来进行存储就是个不错的选择. 我们这样定 ...
 - Java8-2-Lambda表达式实战-一句话实现Map中按照Value排序
		
在上一讲中, 我们着重的讲了表达式的一些基础知识和基本的使用, 今天我们来实战一把, 对Map的Value值排序进行简化. 在以前的思路我们的做法如下: /** * * Map根据value排序; * ...
 - C++中实现对map按照value值进行排序 - 菜鸟变身记 - 51CTO技术博客
		
C++中实现对map按照value值进行排序 - 菜鸟变身记 - 51CTO技术博客 C++中实现对map按照value值进行排序 2012-03-15 15:32:36 标签:map 职场 休闲 排 ...
 - java  -- 对Map按键排序、按值排序
		
java -- 对Map按键.按值排序 1.按键排序(sort by key) 直接上代码 ↓ public Map<String, Str ...
 - Java中Map根据键值(key)或者值(value)进行排序实现
		
我们都知道,java中的Map结构是key->value键值对存储的,而且根据Map的特性,同一个Map中 不存在两个Key相同的元素,而value不存在这个限制.换句话说,在同一个Map中Ke ...
 - 搜狗面试的经典题(C++map按值排序,class struct的差别)
		
一:起因 (1)java Map排序(key,value).请看还有一篇博客 java Map排序 (2)c++ map排序(key,value),能够对c++ map和java Map进行对照:之 ...
 
随机推荐
- CentOS6.9 网络设置
			
一.临时设置IP地址 ifconfig eth0 192.168.42.119 broadcast 192.168.42.129 netmask 255.255.255.0 二.上述方法只能临时生效, ...
 - 读取配置文件properties的几种方式
			
介绍几种读取方式:参考:https://www.cnblogs.com/sebastian-tyd/p/7895182.html .基于ClassLoder读取配置文件 注意:该方式只能读取类路径下的 ...
 - iframe之父子页面通信
			
iframe之父子页面通信 1.获取 子页面 的 window 对象 在父页面中,存在如下两个对象 window.frames document.iframeElement.contentWindo ...
 - 4.高级js--(面向对象js)_2
			
1.创建对象的三种方式: l第一种构造法:new Object var a = new Object(); a.x = 1, a.y = 2; l第二种构造法:对象直接量 var b = { x : ...
 - day02-格式化输出
			
python格式化字符串有%和{}两种 字符串格式控制符. 字符串输入数据格式类型(%格式操作符号) %%百分号标记%c字符及其ASCII码%s字符串%d有符号整数(十进制)%u无符号整数(十进制)% ...
 - 爬虫--Scrapy框架课程介绍
			
Scrapy框架课程介绍: 框架的简介和基础使用 持久化存储 代理和cookie 日志等级和请求传参 CrawlSpider 基于redis的分布式爬虫 一scrapy框架的简介和基础使用 a) ...
 - ORM 的基本操作
			
https://www.cnblogs.com/sss4/p/7070942.html
 - css-图片垂直居中
			
1. img { vertical-align: middle; } 2. <body> <div> <img src="1.jpg" alt=& ...
 - DotNet菜鸟入门之无限极分类(一)设计篇
			
写这个教程的原因,是因为,无限极分类,在许多项目中,都用得到.而对于新手来说,不是很好理解,同时,操作上也有一些误区或者不当之处.所以我就斗胆,抛砖引玉一下,已一个常见的后台左侧频道树为例子,讲解一下 ...
 - MemSQL 架构初探(转)
			
MemSQL 自称是最快的内存数据库.目前已发布了2.5版本. MemSQL 具有以下特点 1 高效的并行,尤其是分布式的MemSQL. 2 高效的并发,采用lock-free的内存数据结构skip ...