(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++如何直接调用自己写的类中的函数,就像调用标准库中的函数那样