gpt4 book ai didi

c++ - 检查 std::map 中是否存在 - 计数与查找

转载 作者:IT老高 更新时间:2023-10-28 14:02:06 31 4
gpt4 key购买 nike

因此,似乎有两种普遍可接受的方法来确定 std::map 中是否存在 key :

map.find(key) != map.end()
map.count(key) > 0

一种比另一种更有效吗?具体来说,count() 的概念可以解释为意味着该方法将遍历每个键,计算总计数(并且由于 std::map 的定义>,总计数将始终为 0 或 1)。 count() 是否保证在匹配后“停止”,以与 find() 相同的复杂度运行?

最佳答案

由于 map 最多只能有一个键,count 将在找到一个元素后基本上停止。但是,考虑到更通用的容器,例如 multimap 和多集,如果您只关心具有此键的 some 元素是否存在,find 会更好,因为它真的可以停止一次已找到第一个匹配元素。

一般来说,countfind 都将使用容器特定的查找方法(树遍历或哈希表查找),这些方法总是相当有效的。只是 count 必须继续迭代直到相等范围的末尾,而 find 则不需要。此外,您的代码应该记录意图,因此如果您想查找某些内容,请使用 find

关于c++ - 检查 std::map 中是否存在 - 计数与查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25490357/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com