C++ 算法 upper_bound() 函数
例子
在排序后的向量中找到第一个大于 7 的值
vector<int> numbers = {1, 7, 3, 5, 9, 2};
sort(numbers.begin(), numbers.end());
auto it = upper_bound(numbers.begin(), numbers.end(), 7);
if(it != numbers.end()) {
cout << *it << " is the first value greater than 7";
} else {
cout << "No elements found above the upper bound";
}
自己试试 »
定义和用法
The upper_bound()
函数是一个高效的算法,用于在排序后的数据范围内找到第一个大于指定上限的值。
如果数据范围没有排序,则该函数可能会返回错误的结果。可以使用 sort() 函数对数据范围内的元素进行排序。
数据范围由迭代器指定。
语法
upper_bound(iterator start, iterator end, <type> bound);
<type>
指的是数据范围包含的数据类型。
参数值
参数 | 描述 |
---|---|
start | 必填。指向数据范围开头的迭代器。 |
end | 必填。指向数据范围末尾的迭代器。将包含到此位置的元素,但不包括此位置的元素。 |
bound | 必填。指定上限。 |
技术细节
返回值 | 指向包含第一个大于上限的值的元素的迭代器。如果找不到元素,则返回数据范围的末尾。 |
---|
相关页面
在我们的 数据结构教程 中了解更多关于数据结构的信息。
在我们的 迭代器教程 中了解更多关于迭代器的信息。
在我们的 算法教程 中了解更多关于算法的信息。