0

私の知る限り、アイテムが hash_map にあるかどうかを確認する基本的な方法は 2 つあります。

hash_map があるとしましょう:hash_map<string, int> amap

「abc」がマップにあるかどうかを確認する場合は、次のことができます

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    
}

どちらが優れているかだけ知りたいですか?効率の懸念のために?

4

1 に答える 1

5

を使用しfind()ます。イテレータをテストすることは、ほぼ確実に、例外をキャッチするよりもはるかに安価になります。

于 2013-01-20T04:56:41.420 に答える