lower_bound

lower_bound()函数需要加载头文件#include<algorithm>,其基本用途是查找有序区间(前闭后开)中第一个大于或等于某给定值的元素的位置,其中排序规则可以通过二元关系来表示。

函数原型: 

template<class ForwardIterator, class Type>
   ForwardIterator lower_bound(
      ForwardIterator _First, 
      ForwardIterator _Last,
      const Type& _Val
   );
template<class ForwardIterator, class Type, class BinaryPredicate>
   ForwardIterator lower_bound(
      ForwardIterator _First, 
      ForwardIterator _Last,
      const Type& _Val,
      BinaryPredicate _Comp
   );
传入参数说明:
_First 要查找区间的起始位置
_Last 要查找区间的结束位置
_Val 给定用来查找的值
_Comp 自定义的表示小于关系的函数对象,根据某个元素是否满足小于关系而返回true或者false

注意:要查找的数组必须是经过排序后的有序序列

查找数组a[4]={2,4,6,8}中离元素3最近的元素

代码:

#include<iostream> 
#include<algorithm> 
using namespace std; 
int main() 
{ 
    int a[4] = { 2, 4, 6, 8 }; //注意此时a中的元素本身就是有序的 
    //int * it = lower_bound(a,a+4,3); 
    int pos = lower_bound(a, a + 4, 3) - a;//a表示数组的起始位置 
    cout <<pos<< endl; 
    return 0; 
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值