AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

c++二分lower_bound()函数

作者: 作者的头像   2580 ,  2022-01-10 11:03:30 ,  所有人可见 ,  阅读 197


1


C++ lower_bound()函数

lower_bound() 函数用于在指定区域内查找大于等于目标值的第一个元素。(最终查找到的不一定是和目标值相等的元素,还可能是比目标值大的元素。)

ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val);

  1. 它在头文件#include <algorithm>中。
  2. 该函数仅适用于已排好序的序列
  3. 如果没找到,返回end()

ForwardIterator就是一个迭代器,vector< int > v,v数组的首元素就是 v.begin()
T&val , 就是一个T类型的变量
Compare 就是一个比较器,可以传仿函数对象,也可以传函数指针

first,last: 迭代器在排序序列的起始位置和终止位置,使用的范围是[first,last).包括first到last位置中的所有元素
val: 在[first,last)下,也就是区分(找到大于等于val值的位置,返回其迭代器)
comp: 主要针对于原型二,传一个函数对象,或者函数指针,按照它的方式来比较
返回值:返回一个迭代器,指向第一个大于等于val的位置
eg1 :vector<int> v= {3,4,1,2,8};
//先排序
sort(v.begin(),v.end()); // 1 2 3 4 8
iter1 = lower_bound(v.begin(),v.end(),3);//迭代器指向3
cout << iter1 - v.begin() << endl; //下标 2

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息