РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
277 of 815 menu

Метод equal_range

Метод equal_range класса map возвращает пару итераторов, определяющих диапазон элементов с заданным ключом. В отличие от multimap, где таких элементов может быть несколько, в map ключи уникальны, поэтому диапазон всегда содержит либо ровно один элемент, либо пуст. В первый параметр передается ключ, который нужно найти. Метод возвращает объект типа pair, где первый элемент - итератор на начало диапазона, а второй - итератор на конец диапазона (за последним элементом).

Синтаксис

map.equal_range(key)

Пример

Давайте создадим map с несколькими элементами и найдем диапазон для существующего ключа:

#include <iostream> #include <map> using namespace std; int main() { map<string, int> mp = { {"a", 1}, {"b", 2}, {"c", 3} }; auto res = mp.equal_range("b"); for (auto it = res.first; it != res.second; ++it) { cout << it->first << " " << it->second << endl; } return 0; }

Результат выполнения кода:

"b 2"

Пример

Давайте попробуем найти диапазон для ключа, которого нет в map:

#include <iostream> #include <map> using namespace std; int main() { map<string, int> mp = { {"a", 1}, {"b", 2}, {"c", 3} }; auto res = mp.equal_range("z"); if (res.first == res.second) { cout << "Key not found" << endl; } return 0; }

Результат выполнения кода:

"Key not found"

Пример

Давайте используем метод equal_range для проверки наличия ключа и вывода его значения:

#include <iostream> #include <map> using namespace std; int main() { map<string, int> mp = { {"a", 1}, {"b", 2}, {"c", 3} }; auto res = mp.equal_range("a"); if (res.first != res.second) { cout << "Found: " << res.first->second << endl; } else { cout << "Not found" << endl; } return 0; }

Результат выполнения кода:

"Found: 1"

Смотрите также

  • метод find,
    который ищет элемент по ключу
  • метод count,
    который возвращает количество элементов с заданным ключом
  • метод lower_bound,
    который возвращает итератор на первый элемент не меньше заданного ключа
  • метод upper_bound,
    который возвращает итератор на первый элемент больше заданного ключа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить