Верхняя граница в C++
Алгоритм upper_bound работает на отсортированном
диапазоне и возвращает итератор за последним
элементом, равным ключу.
Вместе с lower_bound из основного курса
он задает полуинтервал одинаковых значений.
Запишем отсортированный вектор и выведем
элемент в позиции upper_bound:
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> sorted = {1, 2, 2, 2, 5};
auto it = std::upper_bound(sorted.begin(), sorted.end(), 2);
std::cout << *it << "\n";
return 0;
}
В отсортированном массиве {10, 20, 20, 30} найдите upper_bound для 20 и выведите значение по этому итератору.