map(映射)
map可以理解为一种特殊的数组(但是存储单元并不连续),该数组的下标(key,first)和其元素(value,second)可以自己定义
如:map<string,int> cnt;
cnt数组的key“下标”为string类型,value(对应元素)为int型
可以用cnt["July"]=7这样的方式来赋值(July和7同时赋值)
常用函数:
遍历:map<string,int>::iterator it;(迭代器)
for(it=cnt.begin();it!=cnt.end();it++)
cout<<it->first<<" "<<it->second<<endl;(first和second可直接使用,表示key和value)
删除:
it=Map.begin();
Map.erase(it);//通过迭代器删除
Map.erase(key);//通过key删除
Map.erase(Map.begin(),Map.end());//一个迭代器,到另一个迭代器
//相当于 Map.clear();
插入:
插入的方法有多种,最简单的方式就是上面所介绍的cnt["July"]=7,插入的同时,map通过key的大小从小到大进行自动排序
查找:
通过上面我们可以知道在使用到cnt["July"]的时候July会直接插入,所以在查找的时候一定不要用 int value=cnt[key],用键来查找,cnt.count(key)查找key是否出现(0,1),it=cnt.find(key)查找key的地址(没有就返回end())