C++ map使用的注意事项

C++ map注意事项

1、在map中,由key查找value时,首先要判断map中是否包含key。

    如果不检查,直接返回map[key],可能会出现不易发现的问题。如果map包含key,没有问题,如果map不包含key,就会在map中插入一个key的元素,value取默认值(0),返回value。也就是说,map[key]不可能返回null。

2、map提供了两种方式,查看是否包含key,m.count(key),m.find(key)。

m.count(key):由于map不包含重复的key,因此m.count(key)取值为0,或者1,0表示不包含,1表示包含。

m.find(key):返回迭代器,判断是否存在。

3、对于下面的场景,存在key就使用,否则返回null,有下面两种写法:

 if(map.count(key)>0)
 {
     return map[key];
 }
 it = map.find(key);
 if(it!=map.end())
 {
     return it->second;
 }

这里需要注意:前一种方法很直观,但是效率差很多。因为前面的方法,需要执行两次查找。因此,推荐使用后一种方法。

4、对于STL中的容器,有泛型算法find(begin,end,target)查找目标,map还提供了一个成员方法find(key)

猜你喜欢

转载自blog.csdn.net/qq_22379931/article/details/89397858