lower_bound和upper_bound
What's this
这是一个\(stl\)函数,功能是二分查找。他可以让我们不手写二分,简化代码量,不易出错(你也可以手写)
How do you use it?
- \(lower\_bound\): 查找第一个大于等于x的数组下标
- \(upper\_bound\):查找第一个大于x的数组下标
\(eg:\)
当数列为1,2,3,4,5,6时
\(lower\_bound(2)=2\),\(upper\_bound(2)=3\)
当数列为1,2,2,4,5,6时
\(lower\_bound(2)=2\),\(upper\_bound(2)=4\)
注意上面的是伪代码,实际代码中不能这么写,应该写
lower_bound(a+1,a+1+n,x)-a
upper_bound(a+1,a+1+n,x)-a
表示在a数组中\([1,n+1)的区间二分查找\)