upper_bound()和lower_bound()操作,stl库

Posted 要坚持写博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了upper_bound()和lower_bound()操作,stl库相关的知识,希望对你有一定的参考价值。

利用的是二分查找。
lower_bound(l,r,x)和upper_bound(l,r,x)。
l 起始地址
r 结束地址
x 要查找的数值

返回值low_bound()返回大于或等于x的第一个元素位置。如果所有元素都小于x,则返回r的位置(地址).如果所有元素都小于x,则r就越界了。

函数upper_bound()返回的在前闭后开区间查找的关键字的上界,返回大于x的第一个元素位置(地址)。后面和第一个类似。

使用时:
int d[1000010];
int w=upper_bound(d+1,d+len+1,a[i])-d;
//特别记得后面要减那个数组(即初始地址)

以上是关于upper_bound()和lower_bound()操作,stl库的主要内容,如果未能解决你的问题,请参考以下文章

stl map中的lower_bound和 upper_bound

Java实现 lower_bound() 和 upper_bound()

徒手实现lower_bound和upper_bound

关于lower_bound( )和upper_bound( )的常见用法

lower_bounder()和upper_bound()的函数

upper_bound()和lower_bound()