<div id="navCategory"></div><p>map 在编程中是经常使用的一个容器,本文来讲解一下 STL 中的 map,赶紧来看下吧!</p>
讯享网
map 是具有唯一键值对的容器,通常使用红黑树实现。
map 中的键值对是 key value 的形式,比如:每个身份证号对应一个人名(反过来不成立哦!),其中,身份证号就是 key,人名便是 value,是单项的关系,可以与 hash 作类比。
使用 map 需要引入头文件,如下所示:
定义形式如下所示:
注意:如果没有 using namespace std, map需要写成 std:map。
来看一个简单的例子:
输出为:
在上例中,定义了一个key 为 int ,value 为 string 的 map 容器 node。
map 最常见的方法如下所示:
方法1:以数组下标的形式直接增加,即:变量名[key] = value 的形式。
输出为:
身份证号的人叫张三
身份证号的人叫李四
身份证号的人叫王五
方法2:直接插入键值对。
输出为:
身份证号的人叫张三
身份证号的人叫张三
身份证号的人叫李四
其中,pair 定义了一个键值对,对应 map 的 key 和 value。
删除数据使用到 map 的 erase 和 clear方法,来看一下例子:
输出为:
size = 3
size = 2
size = 1
size = 0
其中,clear 方法表示清空容器,size 方法表示获取容器大小。
修改数据仅能修改 value 的值,key 是不能修改的,可以通过增加和删除来实现修改 key。
输出为:
身份证号的人叫张三
身份证号的人叫李四
查找数据通过 find 函数来实现,如下所示:
输出为:
遍历元素使用迭代器的方式,如下所示:
输出为:
身份证号的人叫张三
身份证号的人叫李四
身份证号的人叫王五
其中,使用迭代器 iter 遍历容器,可以将迭代器理解为一个存储了 key 和 value 的一个结构,first 对应 key,second 对应 value。
(1)swap 函数
交换两个 map 容器的内容,map 容器的类型必须相同,例如:
输出为:
node1 :
key = 21 value = 王五
key = 22 value = 赵六
key = 23 value = 孙七
node2 :
key = 11 value = 张三
key = 12 value = 李四
(2)max_size
返回当前容器的可以容纳的最大元素个数,来看一个例子。
输出为:
max_size = 0
max_size = 0
max_size = 0
max_size = 0
(3)rbegin 和 rend
rbegin 和 rend 为反向迭代器,即:rbegin 指向最后一个元素,rend 指向第一个元素的前一个位置,来看一个例子。
输出为:
key = 13 value = 王五
key = 12 value = 李四
key = 11 value = 张三
注意:迭代器需要使用反向迭代器。
(4)lower_bound 和 upper_bound
输出结果为:
key = 15 value = 李四
key = 15 value = 李四
(5)equal_range
输出为:
key1 = 15 value1 = 李四
key2 = 20 value2 = 王五
到此这篇关于C++中的STL中map用法详解(零基础入门)的文章就介绍到这了,更多相关C++ STL map用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

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