博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于lower_bound( )和upper_bound( )的常见用法
阅读量:3932 次
发布时间:2019-05-23

本文共 745 字,大约阅读时间需要 2 分钟。

关于lower_bound( )和upper_bound( )的常见用法

加载#include<algorithm>

 

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()和upper_bound()

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,得到找到数字在数组中的下标。

 

 

 

在处理区间问题时 可用数组记录有序元素的前撮合 再用lower_bound( )和upper_bound( )进行操作。

 

 

 

转载地址:http://jotgn.baihongyu.com/

你可能感兴趣的文章
obex_io.c
查看>>
Linux程序开发基础概念
查看>>
Linux系统环境变量详谈
查看>>
sprintf函数用法
查看>>
make的常见错误信息
查看>>
gdb命令手册
查看>>
gdb中设置共享库断点问题
查看>>
GBD调试程序(转)作者:Janlex
查看>>
第16章可移植性
查看>>
java读取和修改ini配置文件实例代码
查看>>
setsockopt 设置socket 详细用法
查看>>
在局域网中实现多播功能
查看>>
什么叫组播地址(Multicast Address )?
查看>>
掌握IP地址知识 子网掩码与子网划分
查看>>
组播地址,IP组播地址
查看>>
什么是组播
查看>>
组播通信
查看>>
Linux网络编程一步一步学-UDP组播
查看>>
Linux C编程---网络编程
查看>>
在Linux创建库函数(1)
查看>>