STL中的二分查找——lower_bound 、upper_bound 、binary_search
来源:互联网 发布:dos命令查看mac地址 编辑:程序博客网 时间:2024/05/29 15:12
二分查找很简单,原理就不说了。STL中关于二分查找的函数有三个lower_bound 、upper_bound 、binary_search 。这三个函数都运用于有序区间(当然这也是运用二分查找的前提)。
其中如果寻找的value存在,那么lower_bound返回一个迭代器指向其中第一个这个元素。upper_bound返回一个迭代器指向其中最后一个这个元素的下一个位置(明确点说就是返回在不破坏顺序的情况下,可插入value的最后一个位置)。如果寻找的value不存在,那么lower_bound和upper_bound都返回“假设这样的元素存在时应该出现的位置”。要指出的是lower_bound和upper_bound在源码中只是变换了if—else语句判定条件的顺序,就产生了最终迭代器位置不同的效果。
binary_search试图在已排序的[first,last)中寻找元素value,若存在就返回true,若不存在则返回false。返回单纯的布尔值也许不能满足需求,而lower_bound、upper_bound能提供额外的信息。事实上由源码可知binary_search便是利用lower_bound求出元素应该出现的位置,然后再比较该位置的值与value的值。该函数有两个版本一个是operator< ,另外一个是利用仿函数comp进行比较。
这两天研究那个什么最长单调递增子序列搞得头大,,看来还是自己水平太渣,,,o(╥﹏╥)o
阅读全文
0 0
- STL中的二分查找——lower_bound 、upper_bound 、binary_search
- STL中的二分查找——lower_bound 、upper_bound 、binary_search
- STL中的二分查找——lower_bound 、upper_bound 、binary_search
- STL中的二分查找——lower_bound 、upper_bound 、binary_search
- STL中的二分查找——lower_bound 、upper_bound 、binary_search
- STL中的二分查找--lower_bound/upper_bound/binary_search
- 二分查找—lower_bound 、upper_bound 、binary_search
- 二分查找与STL中的lower_bound(),upper_bound(),binary_search()
- STL中的二分查找算法(binary_search lower_bound upper_bound equal_range)
- STL之二分查找(binary_search(),lower_bound(),upper_bound() )
- STL之二分查找(binary_search(),lower_bound(),upper_bound() )
- STL之二分查找(binary_search(),lower_bound(),upper_bound() )
- STL之二分查找(binary_search(),lower_bound(),upper_bound() )
- STL 二分查找(binary_search(),lower_bound(),upper_bound() )
- STL中提供-二分查找算法(binary_search lower_bound upper_bound equal_range)
- STL中提供-二分查找算法(binary_search lower_bound upper_bound equal_range)
- STL中提供-二分查找算法(binary_search lower_bound upper_bound equal_range)
- STL 二分查找三兄弟(lower_bound(),upper_bound(),binary_search())
- Invalid bound statement (not found)
- 用vue.js学习es6(二):let和const使用
- make VERBOSE=1
- mac 上格式化移动硬盘出现MediaKit报告设备上的空间不足以执行请求的解决办法
- springboot logback 打印mybatis sql日志
- STL中的二分查找——lower_bound 、upper_bound 、binary_search
- window.location.hash 使用说明
- Steganography,位操作实现图片隐藏
- 使用Maven Java Selenium3.6.0搭建自动化测试环境
- 【系统配置系列】关于Ubuntu加速下载资源库/加速更新软件,你需要知道的事
- codeforces 501A Contest
- jzoj5439【NOIP2017提高A组集训10.31】Calculate
- Shiro使用及出现问题
- echart中doom在项目中的js片段(主要记录下鼠标滚动显示条数不变)