gpt4 book ai didi

c++ - 哪个更好地检查 key 是否在 C++ 中的 hash_map 中? at with try...catch block 或 find with iterator 比较?

转载 作者:太空宇宙 更新时间:2023-11-04 16:23:32 25 4
gpt4 key购买 nike

据我所知,有两种基本方法可以检查某个项目是否在 hash_map 中:

假设我们有一个 hash_map:hash_map<string, int> amap

如果我们要检查“abc”是否在 map 中那么我们可以做

hash_map<string, int>::iterator itr = amap.find("abc");
if (itr != amap.end()) //in the map

或:

try {
int value = amap.at("abc");
}
catch(out_of_range& e) {
//not there
}

只是想知道哪个更好?出于效率考虑?

最佳答案

使用 find()。几乎可以肯定,测试迭代器比捕获异常要便宜得多。

关于c++ - 哪个更好地检查 key 是否在 C++ 中的 hash_map 中? at with try...catch block 或 find with iterator 比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14421778/

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