lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的。两个函数的用法类似,在一个左闭右开的有序区间里进行二分查找,需要查找的值由第三个参数给出。

这两个函数所需要的头指针

#include<algorithm>

lower_bound()和upper_bound( )函数是在一个排好序的数组中进行查找的,这两个函数默认在从小到大的数组中进行查找的,如果想要在从大到小的数组中进行查找是需要进行重载lower_bound()和upper_bound( )函数。

在升序的数组中查找

lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。

upper_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。

在降序的数组中查找

lower_bound( begin,end,num,greater<type>() ):从数组的begin位置到end-1位置二分查找第一个小于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。

upper_bound( begin,end,num,greater<type>() ):从数组的begin位置到end-1位置二分查找第一个小于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。

#include<iostream>
#include<algorithm>
using namespace std;
int main(){int str[10]={4,1,6,9,2,5,6,2,3,6};int ans;sort(str,str+10);ans=upper_bound(str,str+10,6)-lower_bound(str,str+10,6);cout<<ans;return 0;
}

通过我的介绍希望大家对lower_bound()和upper_bound( )函数有所理解。

lower_bound()和upper_bound( )函数详解相关推荐

  1. C语言网络编程:accept函数详解

    文章目录 前言 函数描述 代码实例 如何得到客户端的IP 和 端口号 前言 当使用tcp服务器使用socket创建通信文件描述符,bind绑定了文件描述符,服务器ip和端口号,listen将服务器端的 ...

  2. 【FFmpeg】函数详解(三)

    FFmpeg函数详解 14.av_write_frame 15.av_interleaved_write_frame 16.av_write_trailer 17.avio_close 18.av_i ...

  3. 【FFmpeg】函数详解(二)

    FFmpeg函数详解 9.av_dump_format 10.avio_open 11.avformat_write_header 12.avcodec_send_frame 13.avcodec_r ...

  4. 【FFmpeg】函数详解(一)

    FFmpeg函数详解 一.错误码相关 1.AVERROR 2.av_strerror 3.其他错误码解释 二.编解码 1.获取编解码器 2.申请.释放上下文环境 3.打开编码器avcodec_open ...

  5. 【ES6】Generator函数详解

    [ES6]Generator函数详解 一.Generator函数简介 基本概念 函数写法 yield关键字介绍 二.next方法的参数 三.for...of循环 四.关于普通throw()与Gener ...

  6. mysql的聚合函数综合案例_MySQL常用聚合函数详解

    一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...

  7. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

  8. python基础知识~ 函数详解2

    python~函数详解2  1 生成器函数    定义 如果函数有yield这个关键字,就是生成器函数.生成器函数() 获取的是生成器,不执行函数   须知 yield和return一样,都可以返回数 ...

  9. scanf函数详解与缓冲区

    1.基本信息 函数原型: int scanf( char *format, args, ...); 函数返回值: 读入并赋给args的数据个数,遇到文件结束返回EOF,出错返回0. 函数功能: sca ...

最新文章

  1. 如何发表cscd核心论文_教育论文发表时几种核心期刊介绍
  2. 两个多精度十进制数加法程序设计_初中数学之有理数的加减,学会加法,减法即会,掌握技巧轻松计算...
  3. 应付账款账龄分析模板_超全的财务会计表单模板分享
  4. python 通过pip安装库 pycharm里面使用第三方库
  5. VMware终端用户计算的战略和愿景
  6. /etc/resolv.conf
  7. 、谷歌离线地图开发教程
  8. [系统安全]《黑客免杀攻防》逆向基础之经典脱壳基础
  9. 破解版极品飞车12免费下载 - 卧底风云(极道车神)
  10. 再问运费查询的具体实现问题
  11. V-REP 添加Vision Sensor与图像获取 | V-REP Adding Vision Sensor and Image Acquisition
  12. c语言小球碰壁,小球碰壁效果
  13. 007 锁存器和触发器
  14. ruby on rails_如何将刺激添加到Ruby on Rails应用程序
  15. splice和sendfile
  16. 网易云音乐小程序登录接口显示400,拥挤问题解决
  17. 小白:从0开始捣鼓Ubuntu(中文输入法)
  18. copilot 让AI帮你编程(人工智能自动完成)
  19. 什么是链接?(动态链接库和静态链接库的对比)
  20. python菜鸟教程学习:数据结构

热门文章

  1. 极光将赴美上市,哈米宣布倒闭,然:又有8家公司拿到融资!
  2. 小程序开发外包费用一般是多少?
  3. modeller建模
  4. 【实验2 选择结构】7-2 sdut-C语言实验——整除
  5. 动易html在线编辑器 漏洞,动易NewComment.asp注入漏洞
  6. 痞子衡嵌入式:飞思卡尔Kinetis开发板OpenSDA调试器那些事(上)- 背景与架构
  7. STM32配置CH375B成HID Host模式读取自定义HID设备的数据 ——STM32配置CH375B接口函数
  8. 努努小说通用爬取——多线程
  9. 基于C语言在8×8点阵实现9到0倒计时牌显示
  10. bga焊盘怎么做_焊接焊盘和BGA设计规则