广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    如何使用C++的lower/upper_bound

    来源:网络收集  点击:  时间:2024-03-21
    【导读】:
    lower_bound 和 upper_bound,都是C++STL中的自带函数,在 algorithm 库中那么,就让我们来看看它们的作用以及如何使用它们该图片来自于网络工具/原料more电脑C++编译器方法/步骤1/8分步阅读

    lower_bound 可以在一个区间中二分查找,返回指向第一个大于等于 x 的元素位置的指针(或迭代器)

    不过,这个区间必须是有序的,即提前从小到大排过序,通常使用时会先sort一下

    lower_bound(首指针,尾指针,x);

    和所有 algorithm 的函数一样,这个函数接受的区间左闭右开,也要在头文件中加上 #includealgorithm

    如图,因为 lower_bound 返回参数为指针,所以要用 * 解除应用

    2/8

    lower_bound 也可以接受迭代器,例如 STL vector 中的 begin()/end()

    vector 也是左闭右开,写起来十分方便

    3/8

    当然,我们可以手写二分代替lower_bound,代码也不是很长

    该代码来源于网络

    4/8

    upper_bound 的使用方法和 lower_bound 差不多(毕竟它们名字就很像)

    upper_bound 返回第一个大于 x 的元素的指针(或迭代器)

    5/8

    这个是 upper_bound 的迭代器版本

    6/8

    和 lower_bound 一样,upper_bound 手写起来也并不是很难

    代码来源于网络

    7/8

    通过指针(或迭代器)的加减我们还可以求出返回元素的下标

    8/8

    以上就是 lower_bound/upper_bound 的主要使用方法及作用

    这两个函数都可以手写,但如果想要节省时间,就直接调用吧

    注意事项

    调用lower/upper_bound返回的是指针(迭代器),别忘了*解除引用!

    区间左闭右开!

    如果这篇经验帮到了您,就请投票+收藏吧,谢谢!

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_362855.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-07 03:18:08  耗时:0.028
    0.0277s