Если вы используете упорядоченную карту (которая звучит так же, как и вы), то она уже выполняет бинарный поиск с std::find
.Эта функция возвращает тип итератора, поэтому предположим, что вы искали значение некоторого ключа x, а затем рассмотрите следующие строки:
std::map<char,int> mymap;
mymap['x'] = 24;
std::map<char,int>::iterator itr = mymap.find('x');
std::cout << "x=" << itr->second << std::endl;
Причина, по которой ваш код не компилировался, была вероятной, потому что вы пытались вернутьпарный итератор, который не печатает точно, чтобы вывести все это хорошо.Вместо этого вызов itr->second
позволяет получить значение, связанное с нужным ключом.