zoukankan      html  css  js  c++  java
  • lower_bound()函数,upper_bound()函数

    1.查找:STL中关于二分查找的函数有三个lower_bound 、upper_bound 、binary_search 。这三个函数都运用于有序区间(当然这也是运用二分查找的前提),下面记录一下这两个函数。

    ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。

    ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于值val的位置。

    lower_bound和upper_bound如下图所示:如果所有元素都小于val,则返回last的位置且last的位置是越界的!!~

    2.插入:举例如下:

    一个数组num序列为:4,10,11,30,69,70,96,100.设要插入数字3,9,20,111。pos为要插入的位置的下标,则

    pos=lower_bound(num,num+8,3)-num,pos=0。即num数组的下标为0的位置。

    pos=lower_bound(num,num+8,9)-num,pos=1。即num数组的下标为1的位置(即10所在的位置)。

    pos=lower_bound(num,num+8,111)-num,pos=8。即num数组的下标为8的位置(但下标上限为7,所以返回最后一个元素的下一个元素)。

    pos=upper_bound(num,num+8,20)-num,pos=3。即num数组中的下标为3的位置。

  • 相关阅读:
    DIY组装机
    伯努利数学习笔记的说...
    心得分享 | 软件研发效能(1)
    开发板烧录教程
    解决Windows7/10系统连接网线后显示“未识别的网络”的问题
    雷达扫描
    经验学习
    1045 Access denied for user 'root'@'localhost' (using password:YES)
    json格式化工具
    mysql安装出现error Nr.1045
  • 原文地址:https://www.cnblogs.com/freinds/p/6408556.html
Copyright © 2011-2022 走看看