文档章节

根据map中的vaule进行排序呢,注意,value为struct自定义类型

成长中的小白
 成长中的小白
发布于 2016/08/09 17:46
字数 256
阅读 7
收藏 0

在工作中,经常需要对map中的内容进行排序,对map进行排序呢有两种情况 1 map内部本身就是按序存储的,在插入<key,value>时,就会按照key的大小顺序存储,当然key必须是能够进行大小比较运算的。map默认的排序是从小到大的,如果需要用到从大到小的顺序,那么访问的时候只需要: for(map<,>::iterator iter = m.end(); m != m.begin(); m-- ) { ....... } 即可,不需要再进行造轮子。

2 根据value排序,且value是一个struct: 上例子: typedef struct { int a; string b; } Test;

    	struct cmp
	{
		bool operator()(const pair<string,Test>  &p1, const pair<string,Test> &p2)
                    {
                        return p1.second.a > p2.second.a;        //降序   降序的话将 > 改成  <
		}
	};

       void SortMapByValue(map<string,Test> &t_map,vector< pair<string,Test> >&t_vec )
        {
             for(map<string,Test>::iterator iter = t_map.begin();iter != t_map.end(); iter++)
                {
                    t_vec.push_back(make_pair(iter->first,iter->second));
                }
                   sort(t_vec.begin(),t_vec.end();cmp);            //升序
         }

这样就实现了对map中按照value进行排序啦

© 著作权归作者所有

共有 人打赏支持
成长中的小白
粉丝 0
博文 19
码字总数 11272
作品 0
深圳
程序员
私信 提问
Go圣经-学习笔记之复合类型(二)

上一篇 Go圣经-学习笔记之复合类型 下一篇 Go圣经-学习笔记之复合数据结构(三) map介绍和简单使用 map是一种无序的key/value对的集合,在Go语言中,一个map就是一个hash表的引用。map中的key...

cdh0805010
2017/10/23
0
0
如何正确使用Java8的Optional机制

Java8带来的函数式编程特性对于习惯命令式编程的程序员来说还是有一定的障碍的,我们只有深入了解这些机制的方方面面才能运用自如。Null的处理在JAVA编程中是出了try catch之外的另一个头疼的...

欧阳海阳
06/21
0
0
MapReduce的排序和分组

map/reduce排序分组调用过程: MapReduce执行过程中会根据key排序,主要分为以下几个阶段。 Map 起始阶段 在Map阶段,使用 job.setInputFormatClass() 定义的 InputFormat ,将输入的数据集分...

等待救赎
2015/11/12
0
0
MaxCompute - ODPS重装上阵 第三弹 - 复杂类型

摘要: MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外,也致力于提...

阿里云云栖社区
01/12
0
0
MapReduce二次排序

默认情况下,Map输出的结果会对Key进行默认的排序,但是有时候需要对Key排序的同时还需要对Value进行排序,这时候就要用到二次排序了。下面我们来说说二次排序 1、二次排序原理 我们把二次排...

小萝卜_
2016/12/16
19
0

没有更多内容

加载失败,请刷新页面

加载更多

0015-如何使用Sentry管理Hive外部表权限

1.文档编写目的 本文档主要讲述如何使用Sentry对Hive外部表权限管理,并基于以下假设: 1.操作系统版本:RedHat6.5 2.CM版本:CM 5.11.1 3.集群已启用Kerberos和Sentry 4.采用具有sudo权限的...

Hadoop实操
27分钟前
1
0
边缘计算与数据中心的发展趋势

导读 Gartner研究表明,人工智能、物联网和5G助力下一代商业创新,由此产生大量数据,2020年前企业将使用超过75亿台联网设备。 在几乎每个方面,社会的节奏都正变得更快。我们希望客户服务问...

问题终结者
40分钟前
4
0
toString();

package com.atguigu.java1; import java.util.Date; /** * toString()的使用: * * 1.java.lang.Object类中toString()定义如下: * public String toString() { return getClass().getName......

architect刘源源
今天
1
3
不可不说的Java“锁”事

前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点...

Java干货分享
今天
1
0
Java GoEasy 实现服务端推送和Web端推送

项目中需要消息推送,又想降低开发成本。Java服务器端推送,Web端接收推送信息。 具体需求: 需求一:系统框架实现全局异常捕获并录入日志表,实现实时推送消息到客户端页面展示。 需求二:系...

Gibbons
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部