【一天一个C++小知识】013.std:map 您所在的位置:网站首页 查找map中是否有key 【一天一个C++小知识】013.std:map

【一天一个C++小知识】013.std:map

#【一天一个C++小知识】013.std:map| 来源: 网络整理| 查看: 265

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::iterator it; it = dataMap.find(key); if(it != dataMap.end()) { string valueStr = it->second;} //也可以用泛型算法find(begin,end,target)

欢迎扫描二维码关注微信公众号 深度学习与数学[每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]

- END -



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有