C++ upper_bound()函数
时间: 2024-09-06 20:03:40 浏览: 39
C++中的`upper_bound`函数是在算法库中的一个非成员函数,它用于在已经有序的序列中查找第一个大于指定值的元素的位置。这个函数定义在`<algorithm>`头文件中。
具体来说,`upper_bound`函数有几种重载形式,但其最基本的形式接受三个参数:开始迭代器、结束迭代器以及需要查找的元素值。函数返回一个迭代器,指向第一个大于(即不小于)给定值的元素。如果所有元素都小于给定值,或者序列为空,则返回的迭代器将等于结束迭代器。
以下是`upper_bound`函数的基本用法示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 3, 5, 7, 9};
int val = 4;
auto it = std::upper_bound(vec.begin(), vec.end(), val);
if (it != vec.end()) {
std::cout << "第一个大于 " << val << " 的元素是: " << *it << std::endl;
} else {
std::cout << "没有元素大于 " << val << std::endl;
}
return 0;
}
```
在这个例子中,`upper_bound`函数将返回指向数字5的迭代器,因为在3和5之间没有其他元素,且5是第一个大于4的元素。
阅读全文