lower_bound()&upper_bound()

原理及运用

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的范围内二分查找第一个满足要求的数的地址

更多操作

  1. 如果是struct类型的数组,就直接在struct内重载运算符就好了
  2. 如果是想返回一个小于等于或者小于num数的地址,那么可以直接
pos = lower_bound(a, a+6, num, greater<int>()) - a;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容