equal_range возвращает пару итераторов: начало блока равных ключей и позицию сразу после него. В std::multimap и std::multiset такой полуоткрытый.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpMuER 191 of 696 menu
◀ ▶

Диапазон одного ключа equal_range в C++

Метод equal_range возвращает пару итераторов: начало блока равных ключей и позицию сразу после него.

В std::multimap и std::multiset такой полуоткрытый диапазон может охватывать несколько элементов. Перебор идет от first до second, не включая second - как у обычного полуинтервала в цикле.

Запишем multimap с двумя значениями для одного ключа и выведем только их, обходя диапазон:

#include <map> std::multimap<std::string, int> tags; tags.insert({"red", 1}); tags.insert({"red", 2}); tags.insert({"blue", 3}); auto span = tags.equal_range("red"); for (auto it = span.first; it != span.second; ++it) { std::cout << it->second << "\n"; }

Создайте multiset из четырех чисел 2, 2, 5, 2. Запросите equal_range для 2 и выведите каждый элемент диапазона с новой строки.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить