Диапазон equal_range в std::map в C++
Метод equal_range возвращает
std::pair из двух итераторов:
начало и конец диапазона равных ключей.
В std::map каждый ключ уникален, поэтому
диапазон либо пустой, либо содержит ровно
одну пару: оба итератора совпадают с
end, если ключа нет, иначе
first указывает на элемент, а
second - на следующий ключ.
Запишем словарь, запросим диапазон для имеющегося и отсутствующего ключа:
#include <map>
std::map<std::string, int> tags = {{"red", 1}, {"blue", 2}};
auto hit = tags.equal_range("red");
auto miss = tags.equal_range("green");
std::cout << hit.first->second << "\n";
std::cout << (miss.first == miss.second) << "\n";
Создайте словарь из двух ключей, вызовите
equal_range для существующего ключа и
выведите значение через итератор
first.