map按照值排序

 1 #include<bits/stdc++.h>
 2
 3 using namespace std;
 4
 5 map<int,int/*,greater<int>*/>mp;
 6 //Tip: map按照key从大到小排序 map<int,int,greater<int>> mp;
 7
 8 bool cmp(const pair<int,int> &a, const pair<int,int> &b){
 9     return a.second > b.second;
10 }
11
12 struct cmp2{
13     bool operator () (const pair<int,int> &a, const pair<int,int> &b) const{
14         return a.second > b.second;
15     }
16 };
17
18 int main(){
19
20     for(int i=1; i<=10; i++){
21         mp[i] = 10 -i;
22     }
23
24     vector<pair<int,int>> v(mp.begin(),mp.end());
25     sort(v.begin(),v.end(),cmp);
26     //sort(v.begin(),v.end(),cmp2());
27     for(int i=0; i<v.size(); i++){
28         cout << v[i].first << " " << v[i].second << endl;
29     }
30     return 0;
31 } 

原文地址:https://www.cnblogs.com/zhangqiling/p/12425787.html

时间: 2024-11-05 18:56:21

map按照值排序的相关文章

搜狗面试的经典题(map按值排序)

一:起因 (1)java  Map排序(key,value),请看另一篇博客 java Map排序 (2)c++ map排序(key,value),可以对c++ map和java Map进行对比:之一,c++的map默认按照key值进行排序,而且就是map了:java Map HashMap是随 机的,不进行排序的.之二,c++声明对象直接Map map(^)的,不用= new的 (3)c++ 按value值排序,map是不能直接排序的,它虽然也是一个数据集合,第一反应是利用stl中提供的sor

Map&lt;Key,Value&gt;基于Value值排序

Map<Key,Value> 排序默认是按照KEY值的升序来进行. 针对按照Value来进行排序有两种方法: 第一种 使用TreeMap  代码如下 public class test{ public static void main(String[] args) { HashMap<String, Double> map = new HashMap<String, Double>(); valueComparator vComparator = new valueCo

Java Map按键(Key)排序和按值(Value)排序

Map排序的方式有很多种,两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value).1.按键排序jdk内置的java.util包下的TreeMap<K,V>既可满足此类需求,向其构造方法 TreeMap(Comparator<? super K> comparator)  传入我们自定义的比较器即可实现按键排序. Java代码   public class MapSortDemo { public static void main(Strin

STL map 按key值和按value值排序

map是用来存放<key, value>键值对的数据结构,能够非常方便高速的依据key查到对应的value. 假如存储水果和其单位价格.我们用map来进行存储就是个不错的选择. 我们这样定义.map<string, double>.当中水果用string类型.作为Key:该水果的单位价格用double类型,作为value. 这样一来,我们能够依据水果名高速的查找到价格. 我们不仅要将水果和相应的价格输出,还想知道依照价格高低进行排序的结果. 换句话说,我们希望可以对map进行按Ke

【Stackoverflow好问题】Map&lt;Key,Value&gt;基于Value值排序

问题 Map<Key,Value>如何基于Value值排序 精华回答 方法1: 使用TreeMap,可以参考下面的代码 public class Testing { public static void main(String[] args) { HashMap<String,Double> map = new HashMap<String,Double>(); ValueComparator bvc = new ValueComparator(map); TreeMa

Map中按value值排序

大家都知道,在java中的集合Map中按键值key排序比较简单,只需引用集合TreeMap即可,可是怎样实现按value值排序呢?下面我们来测试一下: public class TestHashMap { public static void main(String[] args) { Map<String, Integer> map = new HashMap<String, Integer>(); map.put("zhangsan", 1); map.pu

C++基础之map按key排序

在项目当中有要用到map按key排序的需求,就在百度上搜了一下: typedef pair<int,int> PAIR; int cmp(const PAIR& x, const PAIR& y) { return x.second < y.second; } map<int,int> imgdis; //待排序对象,根据double值排序 imgdis[1] = 3; imgdis[10] = 1; imgdis[3] = 5; imgdis[12] = 4

c++map按value排序--将map的pair对保存到vector中,然后写比较仿函数+sort完成排序过程。

map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择. 我们这样定义,map<string, int>,其中学生姓名用string类型,作为Key:该学生的成绩用int类型,作为value.这样一来,我们可以根据学生姓名快速的查找到他的成绩. 但是,我们除了希望能够查询某个学生的成绩,或许还想看看整体的情况.我们想把所有同学和他

Android HashMap按照键值排序的两种方法

有如下一个 Map 对象: HashMap<Integer, String> map = new HashMap<Integer, String>(); map.put(3,"A"); map.put(2,"B"); map.put(1,"C"); 键值排序第一种方法: Object[] key = map.keySet().toArray(); Arrays.sort(key); for(int i = 0; i<