【工作中学习2】Map的使用及排序(第三个参数)

  项目进行中,使用到Map(std::map),Map要点整理如下:

  1. Map,也叫关联数组,提供key/value(键/值对),key用来索引,value是被存储和检索的数据。

  2. key值唯一(Multimap除外)。

  3. Map的内部数据结构是红黑树

  3. 可以用下标操作符,添加Map中的数据,例如map[1] = 2;,用下标操作符查找数据时,如果数据不存在,会被自动插入到Map中。

  4.
Map中的数据默认按照由key从小到大排序(less),可以修改第三个参数(可选)来修改排序法则。

  程序举例:


 1 // testMap.cpp : Defines the entry point for the console application.
2 //
3
4 #include "stdafx.h"
5 #include <string>
6 #include <map>
7 #include <iostream>
8
9 struct SortMap
10 {
11 bool operator ()( const int i1, const int i2 )
12 {
13 return i1 > i2;
14 }
15 };
16
17 //traverse the map
18 void traverseMap(const std::map<int, std::string>& map)
19 {
20 std::map<int, std::string>::const_iterator iter = map.begin();
21
22 while(iter != map.end())
23 {
24 std::cout << "" << iter->first << "," << iter->second << std::endl;
25 iter++;
26 }
27 }
28
29 void traverseSortMap(const std::map<int, std::string, SortMap>& map)
30 {
31 std::map<int, std::string, SortMap>::const_iterator iter = map.begin();
32
33 while(iter != map.end())
34 {
35 std::cout << "" << iter->first << "," << iter->second << std::endl;
36 iter++;
37 }
38 }
39
40
41 int _tmain(int argc, _TCHAR* argv[])
42 {
43 std::map<int, std::string> map1;
44 map1[1] = "no";
45 map1[6] = "hi";
46 map1[5] = "me";
47 map1[9] = "ok";
48
49 traverseMap(map1);
50 std::cout << "-------------------------------------------" << std::endl;
51
52 std::map<int, std::string, SortMap> map2;
53 map2[1] = "no";
54 map2[6] = "hi";
55 map2[5] = "me";
56 map2[9] = "ok";
57
58 traverseSortMap(map2);
59
60 system("pause");
61 return 0;
62 }

  

  运行结果:

  

  继续努力~

【工作中学习2】Map的使用及排序(第三个参数),布布扣,bubuko.com

时间: 2024-10-18 21:26:38

【工作中学习2】Map的使用及排序(第三个参数)的相关文章

射频工程师如何在实际工作中学习射频

当射频工程师知道自己的工作职责之后,我们应该如何在工作和实践中进一步学习它呢?现实工作中有很多案例,不是我们通过多少多少的积分微积分方程就可以轻松解决的.这不是说微波方程在实际工作毫无意义,而是说的很多人重复的那一点,"理论要靠实践来检验". 踏入社会工作的第一天,不是你大功告成的第一天,而是你真正学习课本的第一天,是你检验课堂知识的第一天.很多朋友都希望毕业后马上进入一个好的公司,好的部门工作,想搞技术的第一选研究所,选到好公司的,想进公司中央研究部门,进到差一点的公司的也想起码得进

如何在工作中更好的学习(二)

欢迎关注我的微信公众号:软件测试经验与教训 前言 去年写过一篇文章<如何在工作中更好的学习>,是从员工的角度谈如何在工作中学习提升.今天这篇文章,是写给管理者.从内容来看,本文更应该叫<如何引导下属自我充实,提升工作表现?>. 也许你有过这样的烦恼: 下属工作能力差,难以胜任工作,组织了很多培训,却收效甚微,甚至出于好心的培训最后引来下属的反感. 花了大量人力物力培养起来的人,却离职去了其他公司,你开始怀疑培训到底是否有必要. 下属没有学习主动性,没有上进心,整个团队只有你在操心.

职场新人,优先选择在当前工作中提高自己

[来信] 贺老师: 您好! 早些年毕业的时候在你的blog上得到很多帮助,现在也是,我目前从事linux c开发,大部分工作完成一些嵌入式应用程序,但是我的硬件基础不好,往底层走感觉很吃力,最主要是我对调调驱动.移植系统不感兴趣. 目前薪水还过得去,但是出于自身兴趣和长远发展我觉得学习C++开发,我最近在看你的文章学C++,想要去做服务器后台开发或者cocos2dx游戏开发,但是很多朋友建议我转Java Android平台,因为他们觉得C++已经没落,正在逐渐被Java取代,所以很迷茫,希望老师

作为一名IT从业者,你在工作和学习中,遇到哪些问题

大家都是IT从业者,遇到的问题多少与相似. 如果能把这些问题总结下来,并给出解决方案,相信可以帮助很多的人. 我在ITFriend发起了一个话题"作为一名IT从业者,你在工作和学习中,遇到哪些问题",有很多网友给出了很好的答案. 希望对大家有所帮助. 周琦: 首先说说工作上,作为研发,产品需求不断变更,导致不停的重写代码,这时就需要和产品那边进行沟通确定明确的需求了,而且作为研发我们也可以从产品上提出自己的意见和需求.从而引导别人和提高自己上做出更大的提高.  而当遇到测试方面提出的各

任正非:向谷歌学习,杀出一条血路(谷歌军团的编制不大,战斗力极强。任何产品都是架构第一。算法团队直接杀入到项目中去,一线既有算法又有数据,就容易突破,抽象的平台一定要有实践东西检验。蓝军不一定是有学历的。我们帮助他们在工作中完成学历教育)

IT之家1月22日消息 日前,华为心声社区公布了任正非在1月9日在杭州研究所业务汇报会上的讲话.在本次讲话中,任正非表示在软件工程能力提升上,我们最缺乏的是对宏观架构有清醒认识的人才.建立公司是一个架构:建立公司的利益体系也是一个架构:任何产品都是架构第一:软件重构一定要从宏观架构入手. 任正非强调,没有谁在限制我们的科研,我们也不要自己约束了自己,要敢于到贴近人才资源的地方进行研究活动,在每个研究所形成自己的技术要素,对行业发展形成牵引.要多和终端.外研所交流. 最后任正非表示,谷歌军团的编制

Javascript学习之Map和Filter函数实现方法详解

本文和大家分享的主要是JavaScript的Map和Filter函数的实现相关内容及其工作原理,一起来看看吧,希望对大家学习javascript有所帮助. Array.map Array.map通过对输入的数组中每一个元素进行变换,返回由变换后的元素按序组成的新数组.原始数组的值不会被修改.假设我们相对一个数组中的每一个元素乘以3,使用for循环可以这样写. for循环 var originalArr = [1, 2, 3, 4, 5];var newArr = [];for(var i = 0

nomasp 博客导读:Android、UWP、Algorithm、Lisp(找工作中……

Profile Introduction to Blog 您能看到这篇博客导读是我的荣幸.本博客会持续更新.感谢您的支持.欢迎您的关注与留言.博客有多个专栏,各自是关于 Android应用开发 .Windows App开发 . UWP(通用Windows平台)开发 . SICP习题解 和 Scheme语言学习 . 算法解析 与 LeetCode等题解 .而近期会加入的文章将主要是算法和Android.只是其他内容也会继续完好. About the Author 独立 Windows App 和

Hadoop-2.4.1学习之Map任务源码分析(上)

众所周知,Mapper是MapReduce编程模式中最重要的环节之一(另一个当然是Reducer了).在Hadoop-2.x版本中虽然不再有JobTracker和TaskTracker,但Mapper任务的功能却没有变化,本篇文章将结合源代码深入分析Mapper任务时如何执行的,包括处理InputSplit,mapper的输出.对输出分类等.在进行分析之前先明确几个概念:作业.任务.任务的阶段和任务的状态,可以将作业理解为要最终实现的功能或目的,比如统计单词的数量,而任务就是对该作业的拆分,只负

Hadoop-2.4.1学习之Map任务源码分析(下)

在Map任务源码分析(上)中,对MAP阶段的代码进行了学习,这篇文章文章将学习Map任务的SORT阶段.如果Reducer的数量不为0,则还需要进行SORT阶段,但从上面的学习中并未发现与MAP阶段执行完毕调用mapPhase.complete()类似的在SORT阶段执行完毕调用sortPhase.complete()的源码,那SORT阶段是在什么时候启动的?对于Map任务来说,有输入就有输出,输入由RecordReader负责,输出则由RecordWriter负责,当Reducer的数量不为0