📅  最后修改于: 2023-12-03 15:05:46.193000             🧑  作者: Mango
在 C++ 中,upper_bound
是一个函数,用于在已排序的集合中找到某个元素的大于(或等于)值的第一个位置。
template <class ForwardIterator, class T>
ForwardIterator upper_bound (ForwardIterator first, ForwardIterator last, const T& val);
first
:迭代器指向要考虑的元素的第一个元素。last
:迭代器指向要考虑的元素的最后一个元素后的元素。val
:要搜索的值。返回的迭代器指向在指定范围内的元素中大于给定值的第一个元素。
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 3, 3, 4, 4, 5, 5, 6};
int search_val = 3;
auto upper = std::upper_bound(vec.begin(), vec.end(), search_val);
if (upper != vec.end()) {
std::cout << "The first element greater than " << search_val << " is " << *upper << "." << std::endl;
} else {
std::cout << "The value " << search_val << " is not greater than any element in the vector." << std::endl;
}
return 0;
}
输出:
The first element greater than 3 is 4.
upper_bound
函数。end
。upper_bound
类似的任务,如 lower_bound
、equal_range
等。