C++|树型结构的关联式容器map

本文详细介绍了C++map容器的结构,包括其存储的pair对象、常用接口如构造、insert、find和operator[]的用法,以及make_pair的作用。重点讲解了map如何通过键值(key)进行排序和操作,适用于IT技术开发人员参考。
摘要由CSDN通过智能技术生成

目录

前言

一、map容器储存的元素:pair(const key, T)类型的对象

 二、map容器的常见接口使用

1.map的构造和insert

2.find

3.operator[]

三、make_pair


前言

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的返回值来进行传参比较高效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值