C++ map使用详细版

经过几个小时的学习以及测试,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<<" ";

发布了17 篇原创文章 · 获赞 18 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/baidu_30594023/article/details/81913967