lower_bound和upper_bound均利用了二分查找算法,在一个数组中进行查数。
lower_bound(begin,end,x)-数组名。从begin位置到end-1位置,查找第一个大于等于x的数的位置。如果不存在,返回的是end
upper_bound(begin,end,x)-数组名。从begin位置到end-1位置,查找第一个大于x的数的位置。如果不存在,返回的是end
如果要返回最后一个小于等于x的位置,直接在上面获取的下标-1即可。
lower_bound( begin,end,num,greater<type>() )-num,从数组的begin位置到end-1位置二分查找第一个小于或等于num的数字,不存在则返回end-1。
upper_bound( begin,end,num,greater<type>() )-num,从数组的begin位置到end-1位置二分查找第一个小于num的数字,不存在则返回end-1。