map,翻译为映射,也是常用的STL容器。
map可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器)
#include <map>
using namespace std;
1、map的定义
map<typename1, typename2> mp;
键的类型 值的类型
map<string, int> mp;
map<set<int>, int> mp;
2、map容器内元素的访问
(1)、通过下标进行访问
mp[key] = value map中的键是唯一的
(2)、通过迭代器访问
auto it = mp.begin()
访问键it->first
访问值it->second
map会按照键的大小,从小到大自动排序
3、map常用函数实例解析
(1)、find()
find(key) //返回键为key的映射的迭代器,时间复杂度O(log N),其中N为map中元素的个数
(2)、earse()
1)、删除单个元素
mp.erase(it),it为需要删除元素的迭代器
mp.erase(key),key为欲删除的键
2)、删除一个区间内的所有元素
mp.erase(first, last) 删除[fiest, last)区间内的所有元素
(3)、size()
size() //获取mp中映射到个数
(4)、clear()
clear() //用来清空map中的所有元素,时间复杂度O(N),其中N为map中元素的个数
4、map的常见用途
1)、建立char、string和int之间的映射,使用map可以减少代码量
2)、需要判断大整数或者其他类型的数据是否存在的题目,可以吧map当bool数组只用
3)、字符串和字符串之间的映射
map中的键和值是唯一的,而如果一个键需要对应多个值,就只能使用multimap
不对map中的键进行排序,可以使用unordered_map来加快程序的运行