我知道find方法在std::map中找到提供的键并将迭代器返回到元素。反正有没有找到值并获得元素的迭代器?我需要做的是检查 std::map 中是否存在指定的值。我通过循环地图中的所有项目并进行比较来做到这一点。但我想知道有没有更好的方法。
这是我写的
bool ContainsValue(Type_ value)
{
bool found = false;
Map_::iterator it = internalMap.begin(); // internalMap is std::map
while(it != internalMap.end())
{
found = (it->second == value);
if(found)
break;
++it;
}
return found;
}
编辑
如何在内部使用另一个存储值、键组合的地图。所以我可以调用 find 吗?std::map 中的find()是否进行顺序搜索?
谢谢