Я пытаюсь хранить информацию в std::map
. Но у меня есть проблемы с find
:std :: map :: find не работает
typedef map<string, string, equal_to<string>> MAP_STRING2STRING;
....
MAP_STRING2STRING map;
MAP_STRING2STRING::const_iterator iter;
Когда я пытаюсь найти key
, я получаю следующее сообщение об ошибке:
iter = map.find(key);
Что я делаю неправильно?
Эта ошибка появляется только тогда, когда у меня есть что-то в map
.
'equal_to' не правильный вид сравнения. Вам нужен строгий слабый порядок (сравнение меньше или больше, чем тип). – juanchopanza
Когда ключ является 'std :: string', вам обычно не нужно передавать третий аргумент шаблона в' std :: map'; по умолчанию будет 'std :: less', что прекрасно, если вам не нужен специальный заказ. –
DONT_USE_ALL_UPPERCASE - кроме MACROS. Благодарю. :-) –