【问题标题】:Difference in finding a number inside an unordered_map in C++ STL在 C++ STL 中的 unordered_map 中查找数字的区别
【发布时间】:2022-10-23 15:06:40
【问题描述】:

在 C++ 中的 unordered_map 的情况下,主要区别是什么:

  1. if(map.find(n) != map.end())
  2. if(map.count(n) > 0)
  3. 如果(地图[n] > 0)

    考虑 map 是 <int,int> 类型的 unordered_map。

【问题讨论】:

标签: c++ search stl unordered-map


【解决方案1】:

这些行:

if(map.find(n) != map.end())

if(map.count(n) > 0)

大多是等价的。 map::count 永远不会返回超过 1

这一行:

if(map[n] > 0)

加载与键关联的value n 并比较它的值是否大于零。和前两个不一样。 map[n] 也有副作用。如果n 还不是映射中的键,则映射将为该键创建一个新值(“默认初始化”或“零初始化”值)。因此,它可以隐式地增加地图的大小。

【讨论】:

    猜你喜欢
    • 2011-01-22
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 2020-02-16
    • 2010-09-21
    相关资源
    最近更新 更多