Я знаю, что метод 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;
}
Edit
Как использовать другую карту, которая хранит значение, комбинацию клавиш. Значит, я могу называть его? Является ли find() в std:: map, выполняющем последовательный поиск?
Спасибо