【发布时间】:2011-08-20 05:04:29
【问题描述】:
【问题讨论】:
-
@Space_C0wb0y:几乎没有。了解键和值之间的区别。
-
实际上,这个问题的标题具有误导性,它确实是关于查找给定键是否存在于 std::map 中。
-
@Tomalak:重新阅读问题和所有答案后,我有理由确定它是重复的。虽然标题不准确。
标签: c++ dictionary stl
【问题讨论】:
标签: c++ dictionary stl
if (myMap.find(key) != myMap.end())
{ // there is such an element
}
查看referencestd::map::find
【讨论】:
尝试使用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
}
【讨论】: