今天新学到的东西,用这个东西可以代替手打的二分,不过我觉得没有自己手打的有灵性,但还是相当的好用。
lower_bound()和upper_bound(),它们的头文件是#include<algorithm>
用法lower_bound(first,last,value)这个是返回一个指针,指向ai>=value的第一个元素,first和last指的是地址,它的返回值也是一个地址
例如a[10]={0,0,1,2,3,3,4},int t=lower_bound(a,a+7,3)-a,t的返回值就是4。
a指的就是a[0],a+7指的就是a[6],也就是地址。
那么举其他例子a[10]={0,0,1,2,3,3,4},int t=lower_bound(a+5,a+6,3)-a,t的返回值就是5。
a+5就是a[4],a+6就是a[5]。
upper_bound(first, last, value)指向ai> value的第一个元素,同样first和last也指的是地址
例如a[10]={0,0,1,2,3,3,4},int t=upper_bound(a,a+7,3)-a,t的返回值就是6。
关于地址的控制和上边是一样的。