原理及运用
lower_bound()带等于号,返回的是第一个大于等于num的数的地址
upper_bound()返回的是第一个大于num的数的地址
所以
pos = lower_bound(a, a+6, num) - a;
减去a地址这个pos才是num数在数组中的下标
xx_bound(begin, end, num)的原理是在begin到end-1的范围内二分查找第一个满足要求的数的地址
更多操作
- 如果是struct类型的数组,就直接在struct内重载运算符就好了
- 如果是想返回一个小于等于或者小于num数的地址,那么可以直接
pos = lower_bound(a, a+6, num, greater<int>()) - a;