lower_bound函数和upper_bound
时间: 2023-07-10 10:13:04 浏览: 119
函数有什么区别?
lower_bound 和 upper_bound 都是 C++ STL 库中的函数,用于在有序序列中查找值的位置。二者的区别在于:
1. lower_bound 函数返回序列中第一个不小于指定值的元素的位置,如果所有元素都小于该值,则返回序列的末尾位置。
2. upper_bound 函数返回序列中第一个大于指定值的元素的位置,如果所有元素都不大于该值,则返回序列的末尾位置。
可以通过以下代码演示二者的使用:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> v = {1, 3, 3, 5, 7, 9};
int x = 3;
auto lb = lower_bound(v.begin(), v.end(), x);
auto ub = upper_bound(v.begin(), v.end(), x);
cout << "lower_bound: " << lb - v.begin() << endl; // 输出 1
cout << "upper_bound: " << ub - v.begin() << endl; // 输出 3
return 0;
}
```
在上面的代码中,lower_bound 函数返回的位置为 1,表示第一个不小于 3 的元素在序列中的位置为 1;upper_bound 函数返回的位置为 3,表示第一个大于 3 的元素在序列中的位置为 3。
阅读全文