map,我们一般称为字典或是映射,它提供了一对一的映射关系
使用场景 : map用于查找问题中某个元素出现的次数,比如问‘a’这个元素在数组中出现了多少次。这个只是最基本的应用场景,由于可以有任意的键值对的对应,map的应用远不止于此。还有一个unordered_map,复杂度较低。
头文件 : #include < map >
定义 : map< typename,typename > ma ,这里的typename可以是任何一种的数据类型
使用
c++中map的初始值自动为0,网上有各种各样的花式操作,我这里只记录最简单,最常用的操作
ma.clear(); //清除map中的所有元素
ma[5]=1; //让5对应的值设为1,注意复杂度是log(n)
ma[6]++; //让6对应的值加1,log(n)
ma.erase(6); //把6这个键从映射中删去,log(n)
ma.find(6); //查找6在map是否存在,如果不存在返回ma.end();log(n)
map的遍历
map<int,int> ma;
map<int,int>::iterator it;
for (it = ma.begin(); it != ma.end(); it++)
{
cout << it->first << ' ' << it->second << '\n'; //迭代器是一个二元对
}