1. 概述
map是C++中的一种键值对容器,要点就是数据在map中是成对出现的,能够通过键也就是key来快速找到对应的值。要想使用标准C++中map类,必须要包含头文件:
#include <map>
2. 声明
map<int, string> my_map; //声明一个map; map的键值对类型可以是基础数据类型,也可以是结构体或类
3. map迭代器
和vector一样,map也存在迭代器,方便对map进行遍历操作,map中也存在begin,end,rbegin,rend,前两者为顺序的头尾迭代器,后两者为逆序的头尾迭代器。
map<int, string>::iterator iter = my_map.begin();
4. 插入数据
map中常用的插入数据方式有两种,一种是通过下标插入,一种是通过insert函数插入
my_map[key] = value; pair<map<int, string>::iterator, bool> Insert_Pair = my_map.insert(pair<int, string>(1, "one"));
insert函数中的参数除了可以是pair数据以外,还可以是
map<int, string>::value_type(1, "one")
5. 判断key是否存在
对于map来说判断key是否存在是一个非常重要的操作
int num = my_map.count(key); //返回值是0或1,表示map中某个key出现的次数 //返回值是一个迭代器,如果找到了就是对应的键值对,如果没找到就是my_map.end()对应的迭代器 map<int, string>::iterator iter = my_map.find(key);
6. 删除数据
map中删除数据主要有三种方式,通过迭代器删除某个键值对,通过迭代器删除某些键值对和通过key删除键值对
my_map.erase(iter);
my_map.erase(begin_iter, end_iter);
my_map.erase(key);
7. 其他常用函数
my_map.size(); //返回map中的键值对个数 my_map.clear(); //清除map中所有键值对 my_map.empty(); //返回map是否为空,返回值为bool