什么是 map?
map 是 C++ 中 STL 的一个关联容器,以键值对来存储数据,数据类型自己定义。map 基于红黑树实现,元素默认是根据键的升序排序。使用 map 需要头文件 #include<map>
注意:map 具有自动去重和排序功能,键是唯一的,相同的键只会保留一个,会默认升序排序
定义 map 类型
基础语法:
map<key,value,less<key>> mp;
定义 map 类型是有模板的,它可以接受三个参数
第一个参数是键的数据类型
第二个参数是值的数据类型
第三个参数是排序规则,不写则默认按照键的升序排序
举例:定义个 int string 按照键的降序排序的
map<int,string,greater<int>> mp;
默认第三个参数是 less 如果想要降序排序就改为 greater
map 添加元素
四种方法:
map<int,string> mp;
前三种方法需要使用 insert 关键字
1、pair
mp.insert(pair<int,string>(1,"asd"));
2、make_pair
mp.insert(make_pair(3,"xqwe"));
3、
mp.insert(5,"qw");
4、
mp[1] = "zq" ;
循环输出 map 中的元素
//迭代器
map<int, string>::iterator it;
for (it = mp.begin(); it != mp.end(); it++) {
cout << it->first << " " << it->second;
}
//增强 for 循环输出
for (auto it : mp) {
cout << it.first << " "<<it.second;
}
map 查找数据
#include<map>
map<int,string> mp;
1、find()函数:成功找到会返回位置,找不到返回 mp.end()
2、count()函数:返回键值出现的次数,不是 0 就是 1,因为键在 map 中唯一的