博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 二分查找函数 lower_bound upper_bound
阅读量:6969 次
发布时间:2019-06-27

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

lower_bound

  (ForwardIterator first, ForwardIterator last,const T& val)

  (ForwardIterator first, ForwardIterator last,const T& val, Compare cmp)

  返回一个 指向 [first,last) 中第一个大于等于 数val的 iterator。

upper_bound

  (ForwardIterator first, ForwardIterator last,const T& val)

  (ForwardIterator first, ForwardIterator last,const T& val, Compare cmp)

  返回一个 指向 [first,last) 中第一个大于 数val的 iterator。 用法示例:
#include 
#include
using namespace std;int a[100];int d[100];const int INF = 0x3f3f3f3f;int main(){ int n; int num[] = {
1,5,2,6,8,1,2,5}; sort(num,num+sizeof(num)/sizeof(int));// 1 1 2 2 5 5 6 8 int pos1 = lower_bound(num,num+8,8) - num;//返回数组中第一个大于或等于被查数的下标位置 int pos2 = upper_bound(num,num+8,8) - num;//返回数组中第一个大于被查数的下标位置 cout << pos1 << " " << pos2 << endl; sort(num,num+sizeof(num)/sizeof(int),greater
());//8 6 5 5 2 2 1 1 //如果从小到大排序,除非查找不到返回8,否则都返回0,没有意义。 pos1 = lower_bound(num,num+8,-1,greater
()) - num;//返回数组中第一个小于或等于被查数的下标位置 pos2 = upper_bound(num,num+8,8,greater
()) - num;//返回数组中第一个小于被查数的下标位置 cout << pos1 << " " << pos2 << endl; return 0;}

 

转载于:https://www.cnblogs.com/--zz/p/10571596.html

你可能感兴趣的文章
web移动端与Hybird开发知识整理
查看>>
用最新的 Alamofire(swift 4.1) (带参数)post方法上传图片到服务器
查看>>
我设计一个phpms框架前的准备
查看>>
小程序--语音合成tts 对接多平台(讯飞,思必驰,百度)
查看>>
Node.js文件上传
查看>>
tp5 加载 extend 类库的方法 (有命名空间和没有命名空间的调用)
查看>>
运营一款电视盒子需要注意什么?
查看>>
网络协议 9 - TCP(下)
查看>>
js中的模块化——commonjs,AMD,CMD,UMD,ES6
查看>>
Java 11 正式发布,这 8 个逆天新特性教你写出更牛逼的代码
查看>>
Linux telnet命令
查看>>
用过的一些Markdown编辑器
查看>>
【刷算法】LeetCode.326-3的幂
查看>>
追踪解析Spring ioc启动源码(3)
查看>>
学习区块链中的主要问答
查看>>
5步告诉你QQ音乐的完美音质是怎么来的,播放器的秘密都在这里
查看>>
VisualVm利用SSL连接JMX的方法
查看>>
Linux docker-compose 实战
查看>>
Python--Redis实战:第四章:数据安全与性能保障:第6节:Redis事务
查看>>
Redis中使用Lua的一些优化和注意事项
查看>>