STL是标准模板库的英文缩写,全称为Standard Template Library,是C++中的重要组件。
1、 map容器基于红黑树实现,通过键值对存储数据,可高效完成key到value的映射与查找操作。
2、 图片源自网络
3、 方法定义如下:
4、 定义一个名为 mp 的映射容器,其键类型为 key_type,值类型为 value_type。
5、 key_type 表示关键字的数据类型,value_type 表示映射值的数据类型。
6、 例如,map k 创建了一个将字符串映射到32位整数的数据结构。
7、 map 的应用方法
8、 编写C++代码时,需在头文件中包含map库以使用其功能。
9、 map内置函数众多,下文将逐一介绍其用法。
10、 直接获取 key_type 变量所对应的 value_type 的值。
11、 若map中无此key_type变量,将自动创建该键的映射关系,并将其初始值设为空。
12、 所示,字符串与整数的对应关系映射。
13、 在c中插入字符串zero,由于未进行赋值操作,其对应值默认为0,因为int类型的初始值为0。
14、 在c中执行赋值操作c=1,将字符串one插入其中,由于=1的赋值关系,one所对应的数值即为1。
15、 empty() 函数用于检测变量是否为空
16、 检查map是否为空
17、 所示,首次输出时因未向c中插入字符串变量,故内容为空。
18、 第二次输出时因已填入one、two等值,故内容不再为空。
19、 size函数用于获取容器元素个数
20、 返回一个整数,表示映射容器中键值对的总数,即当前存储的键与值对应关系的数量。
21、 如下图
22、 清除内容的函数
23、 将 map 中所有的键值对全部移除,使其不包含任何映射关系。
24、 如下图
25、 开始与结束函数用于获取容器的首尾迭代器。
26、 获取映射容器的首尾迭代器
27、 插入或删除指定元素x的操作函数。
28、 向映射中添加或移除元素,支持使用键值对或迭代器作为输入参数。
29、 查找元素 x 的位置函数
30、 查找 map 中是否存在键类型为 x 的映射关系。
31、 若找到,返回指向该键值类型的迭代器。
32、 否则返回末尾位置
33、 map包含多种内置方法,可实现丰富的数据处理功能。
34、 用于检测字符串是否重复出现,或实现数据离散化处理。
35、 C++ STL中map的常用操作方法如上所述。
36、 掌握map的灵活使用,能显著简化编程过程,拓展解题思路。
