目录
一、map容器储存的元素:pair(const key, T)类型的对象
前言
map容器是一个树型结构的关联式容器,它按照特定的次序
(
按照
key
来比较
)
存储由键值key和值value组合而成的元素(pair<const key, T>类型的对象),
使用平衡搜索树(
即红黑树)作为其底层,容器中的元素是一个有序的序列。
在
map
中,键值
key
通常用于排序和惟一地标识元素,而值
value
中存储与此键值
key
关联的
内容,键值
key
和值
value
的类型可能不同,并且在
map的内部
元素总是按照键值
key
进行比较排序的。
一、map容器储存的元素pair(const key, T)类型的对象
首先认识一下键值对(pair):
pair的构造:
键值对pair中有两个成员变量first和second。map中存储的数据是pair<const key, T>类型对象中的成员变量first的类型是const key,这表明first不可以被修改,成员变量second的类型是T,变量second可以被修改。
在map内部开发者将其声明为:
二、map容器的常见接口使用
1.map的构造和insert
map的构造:
map容器的insert接口与set形式相同,详见我的上一篇博文http://t.csdnimg.cn/tksuY
下面我们用代码演示一下:
也可以利用范围for遍历map容器。
2.find
和set的返回值一致,但是map的find接口的参数是pair类中的成员变量first。
统计字符串出现的次数,代码实现如下:
对于该代码还可以改进一下。利用operator[]接口,下面会介绍到。
3.operator[]
如果 k 与map容器中元素的键(Key)匹配,则该函数将返回对其映射值的引用。
如果 k 与容器中任何元素的键不匹配,则该函数将插入具有该键的新元素,并返回对其映射值的引用。请注意,这始终会将容器大小增加 1,即使没有为元素分配映射值(元素是使用其默认构造函数构造的)。
改进的统计字符串出现的次数代码如下:
三、make_pair
make_pair是用那个来构造map容器存储的pair类的匿名对象的,通过make_pair的返回值来进行传参比较高效。