今天了解了C++中map的以下几个方法
- find():查找map中是否存在key值;
- count():返回指定元素出现的次数;
关于find()函数
在c++中,find()返回的是一个迭代器,如果在map中存在这个key值,就会返回一个迭代器指向键值为 key 的元素,如果没找到就返回指向 map 尾部的迭代器。
如果你要是想返回key值对应的value值,有2种方法:
- 可以利用
find(key)->second
来获取; - 直接利用map[key]来获取;
注:利用map[key]有一点需要注意的是,在调用这个方法之前我们需要判断是否存在这个key值
map<int,string> maplive;
map<int ,string > ::iterator iter;
iter= maplive.find(1);
if(iter== maplive.end()) //当map中存在这个key值的时候,就不会指向尾部的迭代器
cout<<"we do not find 1"<<endl;
else
cout<<"we find 1"<<endl;
java中的map和c++中的map方法使用区别我感觉还是挺大的;
java中判断map中是否存在这个key值,可以使用map.get(key) == null,或者map.iscontains(key);
java中想获取一个key值的value值,只需要使用map.get(key)即可;
关于count()函数
count函数用于统计key值在map中出现的次数,map的key不允许重复,因此如果key存在返回1,不存在返回0
map<int,int> m;
if(m.count(key) > 0)
cout << "this key is exist.";
else
cout << "null error!";