文档章节

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

成长中的小白
 成长中的小白
发布于 2016/08/09 17:46
字数 256
阅读 6
收藏 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
MapReduce的排序和分组

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

等待救赎
2015/11/12
0
0
MapReduce二次排序

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

小萝卜_
2016/12/16
19
0
Hadoop MapReduce 二次排序原理及其应用

关于二次排序主要涉及到这么几个东西: 在0.20.0 以前使用的是 setPartitionerClass setOutputkeyComparatorClass setOutputValueGroupingComparator 在0.20.0以后使用是 job.setPartitioner...

大数据之路
2013/05/23
0
2
Hadoop Mapreduce分区、分组、二次排序过程详解

1、MapReduce中数据流动 (1)最简单的过程: map - reduce (2)定制了partitioner以将map的结果送往指定reducer的过程: map - partition - reduce (3)增加了在本地先进性一次reduce(优...

张欢19933
2016/04/07
308
0

没有更多内容

加载失败,请刷新页面

加载更多

redis-list

列表用来存储多个有序的字符串,列表中元素是可以重复的,最多可以存储2^32-1个元素 常用命令: lrange key start end 获取指定范围内的元素列表,索引从0开始 0,-1取出所有的元素 lindex k...

拐美人
34分钟前
0
0
AOSP Build System —— Soong

Soong Soong is the replacement for the old Android make-based build system. It replaces Android.mk files with Android.bp files, which are JSON-like simple declarative descriptio......

雪落青山
51分钟前
2
0
Unity C# lock关键字的坑

Unity 5.6 环境下的 lock关键字,在特定的多线程环境下会死锁 崩溃 其中一种情况: 异步socket 操作,由于内部是一个线程池回调的异步回调,操作同一个对象时 lock关键字会概率出现死锁 闪退...

梦想游戏人
今天
1
0
简单的svm例子

数据来源:https://github.com/oumiga1314/Coursera-ML-AndrewNg-Notes/blob/master/code/ex6-SVM/data/ex6data1.mat import pandas as pd import numpy as np import scipy.io as sio impor......

南桥北木
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部