lower_bound()以及upper_bound()

lower_bound():

lower_bound()的返回值是第一个大于等于 target 的值的地址,用这个地址减去first,得到的就是第一个大于等于target的值的下标。

在数组中:

int pos=lower_bound(a,a+n,target)-a;\\n为数组长度

vector容器中:

int pos=lower_bound(a.begin(),a.end(),target)-a.begin();

upper_bound():

从小到大 的排好序的数组中,在数组的 [begin, end) 区间中二分查找第一个大于value的数,找到返回该数字的地址,没找到则返回end。用这个地址减去first,得到的就是第一个大于等于target的值的下标。

在数组中:

int pos=upper_bound(a,a+n,target)-a;\\n为数组长度

vector容器中:

int pos=upper_bound(a.begin(),a.end(),target)-a.begin();

相关推荐
九年义务漏网鲨鱼6 小时前
【机器学习算法】面试中的ROC和AUC
算法·机器学习·面试
草莓熊Lotso6 小时前
《算法闯关指南:优选算法--位运算》--38.消失的两个数字
服务器·c++·算法·1024程序员节
剪一朵云爱着11 小时前
力扣81. 搜索旋转排序数组 II
算法·leetcode·职场和发展
报错小能手14 小时前
刷题日常 5 二叉树最大深度
算法
Greedy Alg15 小时前
LeetCode 84. 柱状图中最大的矩形(困难)
算法
im_AMBER15 小时前
Leetcode 52
笔记·学习·算法·leetcode
小欣加油15 小时前
leetcode 946 验证栈序列
c++·算法·leetcode·职场和发展
包饭厅咸鱼15 小时前
PaddleOCR----制作数据集,模型训练,验证 QT部署(未完成)
算法
无敌最俊朗@15 小时前
C++ 并发与同步速查笔记(整理版)
开发语言·c++·算法