经过几个小时的学习以及测试,map的基本结构是熟悉,但是要想达到灵活运用恐怕还需要进一步练习。以后在涉及到C++中的哈希表时候,用map做代替.
可以横向对比一下vector,大同小异。
1 定义:键值一一对应,key不能重复
#inlcude<map> #include<string>
using namespace std;
map<sting,string> mapstring;
2 插入:两种形式:1)insert 2) 数组形式插入
mapstring.insert(pair<string,string>("a","b")) // pair<string,string> 必不可少,并且里面的两个类型要与定义一致
mapstring["c"]="d";
3 查找:
1)find() 查找并且找出value 2)count() 确定key是否存在,存在返回1,不存在返回0
1)find形式:比较麻烦,需要借助迭代器
//定义迭代器 map<string,string>::iterator iter;
iter=mapstring.find("a")
if(iter!=mapstring.end()) //用这种方式迭代器迭代不到最后,说明键值是存在的
cout<<iter->first<<endl; //iter->first 这指的是key iter->value 指的是value
else
cout<<cant not find this key<<endl;
2) mapstring.count(key) //这种情况下直接用就可以了
4 删除
iter =mapstring.find(key); // 即使key不存在也不会报错,因为有if进行判断,存在才删除
if(iter!=mapstring.end()) //这里的iter迭代器和上面一样的,定义是一样的。
mapstring.erase(iter);
5 打印
for(iter=mapstring.begin();iter!=mapstring.end;iter++) //迭代打印
cout<<iter->first<<"="<<iter->second<<" ";