std::equal_range() возвращаемое значение
По данным cppreference.com
Возвращаемое значение
std::pair, содержащий пару итераторов, определяющих требуемый диапазон, первый указывает на первый элемент, который не меньше значения, а второй указывает на первый элемент, который больше значения. Если нет элементов, не меньших значения, последний возвращается как первый элемент. Аналогично, если нет элементов больше значения, последний возвращается как второй элемент.
Согласно жирному тексту, правильно ли предполагать следующее?
auto p = equal_range(map.begin(), map.end(), value);
if(p.first && p.second){//there is a valid range}
else{//there is no valid range}