std::upper_bound()
Первый элемент > value в отсортированном диапазоне.
Сигнатура
iterator std::upper_bound(first, last, value)Алгоритм std::upper_bound() двоичным поиском находит первый элемент, строго больший value. Вместе с lower_bound задаёт диапазон равных элементов. Сложность O(log n).
std::vector<int> v = {1, 3, 5, 5, 7};
auto it = std::upper_bound(v.begin(), v.end(), 5);
std::cout << *it; // результат: 7 (первый > 5)