upper_bound用法
时间: 2024-01-12 10:03:10 浏览: 81
upper_bound是一个C++标准库函数,用于在有序范围内查找某个值的上界(大于该值的最小元素)。它接受两个迭代器参数和一个要查找的值,返回一个指向第一个大于该值的元素的迭代器。
具体用法如下:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 4, 5, 6};
// 使用upper_bound查找4的上界
auto it = std::upper_bound(nums.begin(), nums.end(), 4);
// 输出结果
if (it != nums.end()) {
std::cout << "Upper bound of 4 is: " << *it << std::endl;
} else {
std::cout << "No upper bound found" << std::endl;
}
return 0;
}
```
运行结果为:
```
Upper bound of 4 is: 5
```
在上述代码中,我们定义了一个有序的vector,然后使用std::upper_bound函数查找值为4的上界。函数返回一个指向5的迭代器,表示大于4的最小元素。如果没有找到上界(即要查找的值大于等于有序范围内的最大值),则返回end迭代器。
需要注意的是,upper_bound函数要求有序范围。如果范围无序,结果将不可预测。
阅读全文