● 在 C++ 标准模板库(STL)中,lower_bound 和 upper_bound 是两个强大的二分查找函数。
STL 中 lower_bound 函数的具体用法如下表所示。
命令 | 功能 | 数组 a |
lower_bound(a+1,a+1+n,x)-a | 在升序数组中查找第一个大于等于 x 的元素的下标 | 数组元素升序,下标从 1 开始 |
lower_bound(a,a+n,x)-a | 在升序数组中查找第一个大于等于 x 的元素的下标 | 数组元素升序,下标从 0 开始 |
lower_bound(a+1,a+1+n,x,greater<int>())-a | 在降序数组中查找第一个小于等于 x 的元素的下标 | 数组元素降序,下标从 1 开始 |
lower_bound(a,a+n,x,greater<int>())-a | 在降序数组中查找第一个小于等于 x 的元素的下标 | 数组元素降序,下标从 0 开始 |
STL 中 upper_bound 函数的具体用法如下表所示。
命令 | 功能 | 数组 a |
upper_bound(a+1,a+1+n,x)-a | 在升序数组中查找第一个大于 x 的元素的下标 | 数组元素升序,下标从 1 开始 |
upper_bound(a,a+n,x)-a | 在升序数组中查找第一个大于 x 的元素的下标 | 数组元素升序,下标从 0 开始 |
upper_bound(a+1,a+1+n,x,greater<int>())-a | 在降序数组中查找第一个小于 x 的元素的下标 | 数组元素降序,下标从 1 开始 |
upper_bound(a,a+n,x,greater<int>())-a | 在降序数组中查找第一个小于 x 的元素的下标 | 数组元素降序,下标从 0 开始 |