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

Функция equal_range

Функция equal_range ищет в отсортированной последовательности диапазон элементов, которые равны заданному значению. Функция возвращает пару итераторов: первый указывает на начало диапазона равных элементов, второй - на элемент, следующий за последним равным. В первый параметр мы передаем итератор начала последовательности, во второй - итератор конца, в третий - значение, которое ищем. Четвертым необязательным параметром можно передать функцию сравнения.

Синтаксис

equal_range(first, last, value, [comp])

Пример

Давайте найдем диапазон элементов, равных числу 3, в отсортированном векторе:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> vec = {1, 2, 3, 3, 3, 4, 5}; auto res = equal_range(vec.begin(), vec.end(), 3); for (auto it = res.first; it != res.second; ++it) { cout << *it << " "; } return 0; }

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

3 3 3

Пример

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

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> vec = {1, 2, 4, 4, 5}; auto res = equal_range(vec.begin(), vec.end(), 3); if (res.first == res.second) { cout << "not found" << endl; } else { for (auto it = res.first; it != res.second; ++it) { cout << *it << " "; } } return 0; }

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

"not found"

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

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