C ++ boost unordered_map - 确定密钥是否存在于容器中

时间:2011-08-27 07:46:59

标签: c++ boost

boost::unordered_map中如何确定其中是否存在密钥?

boost::unordered_map<vector<int>, MyValueType> my_hash_map;

if (my_hash_map[non-existent key] == NULL)

上面的编译错误“不匹配运算符'=='...”

问题是我使用自定义值类型还是别的什么?

2 个答案:

答案 0 :(得分:30)

您可以使用find方法:

if (my_hash_map.find(non-existent key) == my_hash_map.end())

答案 1 :(得分:25)

任何count()

exist()拼写为associative container

if (my_hash_map.count(key)) { /*key exist*/ }

if (!my_hash_map.count(key)) { /*key does not exist*/ }