low_bound函数
lower_bound(int* first,int* last,val);
函数lower_bound()在first和last中的前闭后开区间,进行二分查找。返回从first开始的第一个大于或等于val的元素的地址。如果所有元素都小于val,则返回last的地址。注意:数组必须是排好序的数组。
例子1
int main()
{
int a[]={1,2,3,4,5,7,8,9};
printf("%d",lower_bound(a,a+8,6)-a);
return 0;
}
输出:5
这里lower_bound(a,a+8,6)返回的是a数组中从左往右数第一个大于等于6的元素的地址,之后又-a,得到了该元素的下标
例子2
int main()
{
int a[]={1,2,3,4,5,7,8,9};
*lower_bound(a,a+8,6)=100;
for(int i=0;i<8;i++) cout<<a[i]<<' ';
return 0;
}
输出:1 2 3 4 5 100 8 9
这里实现了将a数组中从左至右第一个大于等于6的元素改为100