(C++)用upper_bound函数取代自己写的二分查找

Posted CSU迦叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(C++)用upper_bound函数取代自己写的二分查找相关的知识,希望对你有一定的参考价值。

int a[maxn];

int j = upper_bound(a+i+1,a+n,(long long)a[i]*p)-a;

以上代码的作用是

在a[i+1]~a[n-1]找到第一个大于a[i]*p的数,将其下标返回给j

注意:

1.函数是左闭右开的

2.末尾要减去数组的坐标a

3.不加long long强制类型转换可能丢分

以上是关于(C++)用upper_bound函数取代自己写的二分查找的主要内容,如果未能解决你的问题,请参考以下文章

为啥 C++ lower_bound() 允许返回与 val 等效的指针,而 upper_bound() 不允许

c++如何直接调用自己写的类中的函数,就像调用标准库中的函数那样

用内联取代宏代码

二分检索函数lower_bound()和upper_bound()

自己用C++写的图像处理软件试用版下载

C++ sort 排序函数用法