map与multimaps

map与multimaps

ID:20365785

大小:203.00 KB

页数:16页

时间:2018-10-09

map与multimaps_第1页
map与multimaps_第2页
map与multimaps_第3页
map与multimaps_第4页
map与multimaps_第5页
资源描述:

《map与multimaps》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、maps和multimap1简介map和multimap将key(键值,或理解为排序关键字)/value(值)作为元素,成对存储,它们可根据key的排序准则自动将元素排序。multimap允许重复键值,maps不允许。如下图:使用map和multimap需要使用头文件,在使用这个头文件时,要用标准名称空间(usingnamespacestd;)。map和multimap的元素是key/value对,map可以作为映射式数组使用,比如存储学生信息时,学生的学号和姓名就是一一对应的映射关系,或者在存储电话号码时,人名和电话号码也是映射

2、关系,等等。map和multimap根据元素的key自动对元素进行排序。根据已知的key搜寻某个元素时,能够有很好的性能,根据已知的value搜寻元素时性能则很糟糕。“自动排序”这一性质使得map和multimap有很重要的限制:不能直接改变元素的key,因为这会破坏正确顺序。要修改元素的key,必须先移除拥有该key的元素,然后插入拥有新的key值的元素。2map和multimaps的构造函数表1map和multimap的构造函数操作效果mapc产生一个空的map/multimap,其中不含任何元素mapc(op)以op为排序准则,产生一

3、个空的map/multimapmapc1(c2)产生某个map/multimap的副本,所有元素均被复制mapc(beg,end)以区间[beg;end]内的元素产生一个map/multimapmapc(beg,end,op)以op为排序准则,利用[beg;end]内的元素生成一个map/multimap在表1中的map可以是以下形式:表2表1中map的可选形式map效果map一个map,以less<>(实际上就是小于号“<”)为排序准则map一个map,以op为排序准则multimap

4、,elem>一个multimap,以less<>为排序准则multimap一个multimap,以op为排序准则表2中,key为键值类型,elem为value值的类型。op可以是less<>或者是greater<>,在排序准则中要指定key的类型。第二个参数指定了value的类型:string声明一个map容器变量方法如下:第一个参数指定了key的类型:float#include#include#include注意:此处两个“>”中间有一个空格usingnamespa

5、cestd;intmain(){map>mymap;return0;}map>mymap;语句中,map>是类型,mymap是该map容器的变量,二者之间的关系就如同inta;语句中,变量类型int和变量a之间的关系。实际上,map是一种容器,这种容器可以存储任何类型的变量,但是具体你需要什么类型的map,还需要告诉编译器,比如在本例的map容器,以float类型为key,以

6、string类型为value。这些是属于泛型编程的内容,具体细节以后接触C++的时候就会明白。要注意红色高亮部分的两个“>”中间要有一个空格,因为连续的两个“>”会被编译器解释为移位操作符,导致语法错误。以上程序片段在VC中编译会有一大票C4786警告,不必理会,在其他编译器中无此问题。3数据的插入和删除3.1插入数据1、使用pair<>和insert语句:#include#include#includeusingnamespacestd;intmain(){map

7、greater>mymap;mymap.insert(pair(22.3,"hello"));mymap.insert(pair(78.5,"ok"));return0;}其中pair的功能是把pair后面尖括号里指定的两种类型合并为一个pair类型。因为map容器存储数据都是相关联的数据成对存储的,所以要先把两个值合成一个“pair类型”。比如上面例子中,pair(22.3,“hello”)实现的功能就是把一个float和一个str

8、ing合并成一个pair类型变量(实际上这就是面向对象中所谓的“对象”,对象与类的关系类似于c语言中内置类型如int与该类型变量的关系。实际上pair是一个类)。这个pair类型

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。