lower_bound

1、功能作用

     lower_bound 的作用是在已经排好序的数组中返回第一个大于等于(不小于)你所给定的值。

     比如,在vector元素中,有1,2,3,4,4,4,5.对应的下标是 0,1,2,3,4,5,6

     通过lower_bound 查找4,那么返回的是下标3.

 

 

2、使用方法

    首先看看lower_bound的函数原型有2个版本。

    版本一:

template < class  ForwardIterator, class  T>
ForwardIterator lower_bound(ForwardIterator first,ForwardIterator last,
const  T &val);
 
这个版本是对常用的类型,比如vector<int>,vector<string>这种类型的数组进行查找操作。
vector<int> v1;
lower_bound(v1.begin(),v2.end(), 5);
 
 版本二:
template < class  ForwardIterator, class  T, class  Compare>
ForwardIterator lower_bound(ForwardIterator first,ForwardIterator last,
const  T &val,Compare comp);
这个版本是对自定义数据类型的数组进行查找操作。
比如
struct data{
     int id;
};
但是对这中数据类型进行查找的时候,系统是没办法对data类型进行比较大小的。
所以需要我们实现对data的大小比较的仿函数
struct datacomp{
    bool operator()(const data &l, const data &r)
    {
        return l.id < r.id
    }
}
vector<data> v2;
data data1;
lower_bound(v2.begin(),v2.end(),data1,datacomp());

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值