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

Функция upper_bound

Функция upper_bound из библиотеки algorithm возвращает итератор на первый элемент в отсортированном диапазоне, который строго больше заданного значения. В первый параметр мы передаем итератор на начало диапазона, во второй - итератор на конец диапазона, а в третий - значение, с которым сравниваются элементы. Если такого элемента нет, функция возвращает итератор на конец диапазона.

Синтаксис

upper_bound(first, last, value)

Пример

Давайте найдем первый элемент вектора {1, 2, 3, 4, 5}, который больше числа 3:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; auto it = upper_bound(v.begin(), v.end(), 3); cout << *it << endl; return 0; }

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

4

Пример

Давайте найдем индекс первого элемента вектора {1, 2, 3, 4, 5}, который больше числа 2:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; auto it = upper_bound(v.begin(), v.end(), 2); cout << it - v.begin() << endl; return 0; }

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

2

Пример

Давайте проверим, что функция upper_bound возвращает, если все элементы вектора {1, 2, 3, 4, 5} меньше или равны числу 5:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; auto it = upper_bound(v.begin(), v.end(), 5); if (it == v.end()) { cout << "not found" << endl; } return 0; }

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

"not found"

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

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