lower_bound()、upper_bound()头文件
时间: 2023-10-14 13:04:03 浏览: 36
lower_bound()和upper_bound()函数位于<algorithm>头文件中。 [2 [3<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [upper_bound和lower_bound用法(史上最全)](https://blog.csdn.net/weixin_43967256/article/details/127462617)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关问题
lower_bound头文件
lower_bound()和upper_bound()函数是C++ STL标准库中的查找函数,它们的底层实现采用二分查找的方式。在使用这两个函数之前,需要添加<algorithm>头文件。
示例代码如下:
```
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
const int n = 6;
int arr[n]{ 0,1,5,8,10,11};
int i_lower = lower_bound(arr, arr+n, 8) - arr; // 返回大于等于8的元素的地址
int i_upper = upper_bound(arr, arr+n, 8) - arr; // 返回大于8的元素的地址
cout << "i_lower:" << i_lower << endl; // i_lower:3
cout << "i_upper:" << i_upper << endl; // i_upper:4
int j_lower = lower_bound(arr, arr+n, 10) - arr;
int j_upper = upper_bound(arr, arr+n, 10) - arr;
cout << "j_lower:" << j_lower << endl; // j_lower:4
cout << "j_upper:" << j_upper << endl; // j_upper:5
return 0;
}
```
请注意,lower_bound()函数返回的是第一个大于等于目标值的元素的地址,而upper_bound()函数返回的是第一个大于目标值的元素的地址。因此,通过减去数组的起始地址,可以得到相应的索引位置。
ower_bound和upper_bound
lower_bound和upper_bound函数是用于在一个有序数组中进行查找的函数。lower_bound函数返回大于等于给定值的第一个元素的位置,而upper_bound函数返回大于给定值的第一个元素的位置。这两个函数都利用了二分查找的方法,在有序数组中进行查找,时间复杂度为O(log n)。需要注意的是,使用这两个函数的前提是数组必须是有序的。在数组中使用lower_bound和upper_bound函数时,可以通过减去数组的起始位置来得到相对位置。在STL中,也提供了lower_bound和upper_bound函数,使用时需要包含相应的头文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>