检查C ++ map中是否存在元素?

时间:2011-05-06 13:33:40

标签: c++ dictionary stl

  

可能重复:
  How to find if a given key exists in a C++ std::map

在C ++中,如何检查是否存在带密钥的元素?

2 个答案:

答案 0 :(得分:7)

if (myMap.find(key) != myMap.end())
{ // there is such an element
}

请参阅std::map::find的{​​{3}}

答案 1 :(得分:5)

尝试使用find方法找到它,如果找不到该元素,它将返回地图的end()迭代器:

if (data.find(key) != data.end()) {
    // key is found
} else {
    // key is not found
}

当然,如果您稍后需要与给定密钥对应的值,则不应find两次。在这种情况下,只需先存储find的结果:

YourMapType data;
...
YourMapType::const_iterator it;
it = data.find(key);
if (it != data.end()) {
    // do whatever you want
}