C++之map

作者: starmier | 来源:发表于2019-06-16 22:19 被阅读0次

c++的map中通过key获取value的方法

一般是value =map[key],或者另一种迭代器的方式

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,有下面两种写法:

1 if(m.count(key)>0)

2 {

3 return m[key];

4 }

5 return null;

1 iter = m.find(key);

2 if(iter!=m.end())

3 {

4 return iter->second;

5 }

6 return null;

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

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

相关文章

  • map hash_map(挖坑)

    学习内容来自C++ STL中哈希表 hash_map 未学C++之哈希表的使用 map 使用count,返回的是被...

  • C++之map

    c++的map中通过key获取value的方法 一般是value =map[key],或者另一种迭代器的方式 1、...

  • go语言学习总结

    1、go语言的map和c++中的map有什么区别? go语言中的map是hash_table,和c++中uno...

  • map

    在其他语言诸如C++/Java中, map一般都以库的方式提供 如C++中的 std::map<> ,Java中的...

  • 实现特定场景下高性能的HashMap

    C++标准库的某些场景下的效率问题 在下面的场景中,C++标准库的unordered_map、map、multis...

  • C++ unordered_map

    hash_map ≈ unordered_map 最初的 C++ 标准库中没有类似 hash_map 的实现,但不...

  • C++大厂面试真题

    C++标准库的map和set有什么区别,如何实现的? map和set都是C++的关联容器,其底层实现都是红黑树。 ...

  • C++ STL容器之 map

    map 是一种有序无重复的关联容器。 关联容器与顺序容器不同,他们的元素是按照关键字来保存和访问的,而顺序元素是按...

  • C++ STL:unordered_map

    背景: hash_map 不是C++ 11 的标准 在vc中编译时: #includeusin...

  • map in C++

网友评论

      本文标题:C++之map

      本文链接:https://www.haomeiwen.com/subject/isynfctx.html