一些杂七杂八的函数

WBCMZ / 2023-08-26 / 原文

1  lower_bound 和 upper_bound

这两个函数是STL中用于二分查找的两个函数

假定我们有一个有序的数组a,并将数x作为二分查找的目标

 

lower_bound : 取得最小的a数组的下标i,满足a[i]>=x

lower_bound(a,a+n,x)-a      //下标从0开始
lower_bound(a+1,a+n+1,x)-a  //下标从1开始

 

upper_bound : 取得最小的a数组的下标i,满足啊a[i]>x

upper_bound(a,a+n,x)-a      //下标从0开始
upper_bound(a+1,a+n+1,x)-a  //下标从1开始

 

我们可以发现,通过 upper_bound() 和 lower_bound() 相减可得在a数组中含有数x的个数

除了免去手写二分边界问题的苦恼,这是一大用途吧(能不写就不写,主打一个懒)