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);//通过迭代器删除  


     string key="root";  
     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())


猜你喜欢

转载自blog.csdn.net/acdalao/article/details/80197005