让库函数lower_bound返回数组下标
时间: 2024-04-01 20:29:34 浏览: 94
lower_bound是C++标准库中的一个函数,用于在有序数组中查找第一个大于或等于给定值的元素的位置。它返回一个迭代器,指向数组中第一个大于或等于给定值的元素。
要让lower_bound返回数组下标,可以通过对返回的迭代器进行减法操作来计算下标。具体步骤如下:
1. 首先,需要确保数组是有序的。
2. 调用lower_bound函数,传入数组的起始迭代器和结束迭代器,以及要查找的值作为参数。
3. lower_bound返回一个迭代器,指向第一个大于或等于给定值的元素。
4. 使用返回的迭代器减去数组的起始迭代器,即可得到该元素在数组中的下标。
下面是一个示例代码:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int target = 6;
auto it = std::lower_bound(arr.begin(), arr.end(), target);
int index = std::distance(arr.begin(), it);
std::cout << "The index of the first element greater than or equal to " << target << " is: " << index << std::endl;
return 0;
}
```
输出结果为:
```
The index of the first element greater than or equal to 6 is: 5
```
阅读全文