在C ++中,如何检查是否存在带密钥的元素?
答案 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
}