stlmap详解(stl map)

stlmap详解(stl map)hr 作者 Linux 猿 简介 CSDN 博客专家 C C 面试 刷题 算法尽管咨询我 关注我 有问题私聊 关注专栏 C C 面试通关集锦

大家好,我是讯享网,很高兴认识大家。



 <hr /> 

讯享网

🎈 作者:Linux猿

🎈 简介:CSDN博客专家🏆,C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

🎈 关注专栏:C/C++面试通关集锦 (优质好文持续更新中……)🚀


目录

一、什么是 map ?

二、map的定义

2.1 头文件

2.2 定义

2.3 方法

三、实例讲解

3.1 增加数据

3.2 删除数据

3.3 修改数据

3.4 查找数据

3.5 遍历元素

3.6 其它方法

四、总结


map 在编程中是经常使用的一个容器,本文来讲解一下 STL 中的 map,赶紧来看下吧!

map 是具有唯一键值对的容器,通常使用红黑树实现。

map 中的键值对是 key value 的形式,比如:每个身份证号对应一个人名(反过来不成立哦!),其中,身份证号就是 key,人名便是 value,是单项的关系,可以与 hash 作类比。


讯享网

2.1 头文件

使用 map 需要引入头文件,如下所示:

讯享网

2.2 定义

定义形式如下所示:

 

注意:如果没有 using namespace std, map需要写成 std:map。

来看一个简单的例子:

讯享网

输出为:

 

在上例中,定义了一个key 为 int ,value 为 string 的 map 容器 node。

2.3 方法

map 最常见的方法如下所示:

讯享网

3.1 增加数据

方法1:以数组下标的形式直接增加,即:变量名[key] = value 的形式。

 

输出为:

讯享网

方法2:直接插入键值对。

 

输出为:

讯享网

其中,pair 定义了一个键值对,对应 map 的 key 和 value。

3.2 删除数据

删除数据使用到 map 的 erase 和 clear方法,来看一下例子:

 

输出为:

讯享网

其中,clear 方法表示清空容器,size 方法表示获取容器大小。

3.3 修改数据

修改数据仅能修改 value 的值,key 是不能修改的,可以通过增加和删除来实现修改 key。

 

输出为:

讯享网

3.4 查找数据

查找数据通过 find 函数来实现,如下所示:

 

输出为:

讯享网

find 方法返回的是 map 的迭代器。 

3.5 遍历元素

遍历元素使用迭代器的方式,如下所示:

 

输出为:

讯享网

其中,使用迭代器 iter 遍历容器,可以将迭代器理解为一个存储了 key 和 value 的一个结构,first 对应 key,second 对应 value。

3.6 其它方法

(1)swap 函数

交换两个 map 容器的内容,map 容器的类型必须相同,例如:

 

输出为:

讯享网

(2)max_size

返回当前容器的可以容纳的最大元素个数,来看一个例子。

 

输出为:

讯享网

(3)rbegin 和 rend

rbegin 和 rend 为反向迭代器,即:rbegin 指向最后一个元素,rend 指向第一个元素的前一个位置,来看一个例子。

 

输出为:

讯享网

注意:迭代器需要使用反向迭代器。

(4)lower_bound 和 upper_bound

 

输出结果为:

讯享网

(5)equal_range

 

输出为:

讯享网

编程中经常使用到 key / value 的形式表示数据之间的关系,故 map 是 STL 中经常使用的一个容器,需要记住 map 的常用方法。


🎈 本文博主原创,创作不易,如果对您有帮助,欢迎小伙伴们点赞👍、收藏⭐、留言💬


小讯
上一篇 2025-05-17 13:49
下一篇 2025-06-10 22:34

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/170551.html