概述
1、在map中,由key查找value时,首先要判断map中是否包含key。
2、如果不检查,直接返回map[key],可能会出现意想不到的行为。如果map包含key,没有问题,如果map不包含key,使用下标有一个危险的副作用,会在map中插入一个key的元素,value取默认值,返回value。也就是说,map[key]不可能返回null。
3、map提供了两种方式,查看是否包含key,m.count(key),m.find(key)。
4、m.count(key):由于map不包含重复的key,因此m.count(key)取值为0,或者1,表示是否包含。
5、m.find(key):返回迭代器,判断是否存在。
6、对于下面的场景,存在key就使用,否则返回null,有下面两种写法:
if(dataMap.count(key)>0)
{string valueStr = dataMap[key];}
// or
//find(),仅一次查找,且时间复杂度为logn。
map<string,string>::iterator it;
it = dataMap.find(key);
if(it != dataMap.end())
{ string valueStr = it->second;}
//也可以用泛型算法find(begin,end,target)
欢迎扫描二维码关注微信公众号 深度学习与数学 [每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]
最后
以上就是俏皮香菇为你收集整理的【一天一个C++小知识】013.std:map-不存在的key查找其value的全部内容,希望文章能够帮你解决【一天一个C++小知识】013.std:map-不存在的key查找其value所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复