Я использую функции map.find(key) и map.end() в операторе if:
if( p_Repos->returnTypeMap().find(tc[0]) != p_Repos->returnTypeMap().end() )
Но это не работает, и я получаю сообщение об ошибке библиотеки времени выполнения Microsoft Visual C++, которое говорит мне: «Выражение: итераторы списка несовместимы». tc[0] — это просто строка, а ключевая позиция на моей карте — это строка.
Но они должны быть совместимы, верно?
Любая помощь приветствуется.
Спасибо, Том
Изменить: на основе ответа, найденного здесь: Поиск значения в unordered_map, Я склоняюсь к тому, что это должно работать.
Второе редактирование:
Вот функция returnTypeMap():
std::unordered_map <std::string, std::pair<std::string, std::string>> returnTypeMap()
{
return typeTable;
}
Вот определение моей карты:
std::unordered_map <std::string, std::pair<std::string, std::string>> typeTable;
returnTypeMap()
возвращает значение? Если это так, то каждый итератор указывает на совершенно другойmap
. - person Mankarse   schedule 16.03.2013if( p_Repos->returnTypeMap().count(tc[0]) > 0 )
вместо этого. - person leewz   schedule 26.12.2013