lower_bound()函数和upper_bound函数
头文件:algorithm
int pos1=lower_bounda,a+n,k)-a;返回数组中第一个大于或等于k的值的下标
int pos2=upper_bound(a,a+n,k)-a;返回数组中第一个大于k的值的下标
注意作用对象是有序数组
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{int a[10]={1,3,4,5,7,9,10,26,29,40};//有序数组 int pos1=lower_bound(a,a+10,5)-a;//返回数组中第一个大于或等于k的值的下标 int pos2=upper_bound(a,a+10,5)-a;//返回数组中第一个大于k的值的下标 cout<<"pos1"<<"="<<pos1<<endl;cout<<"pos2"<<"="<<pos2<<endl;return 0;
}
运行结果:
pos1=3
pos2=4
如果把要查找的数字K换成45,则会返回数组最后的下标位置
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{int a[10]={1,3,4,5,7,9,10,26,29,40};//有序数组 int pos1=lower_bound(a,a+10,45)-a;//返回数组中第一个大于或等于k的值的下标 int pos2=upper_bound(a,a+10,45)-a;//返回数组中第一个大于k的值的下标 cout<<"pos1"<<"="<<pos1<<endl;cout<<"pos2"<<"="<<pos2<<endl;return 0;
}
运行结果:
pos1=10
pos2=10
vector容器
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{vector<int> a;a.push_back(1);a.push_back(3);a.push_back(4);a.push_back(5);a.push_back(7);a.push_back(9);a.push_back(10);a.push_back(26);a.push_back(29);a.push_back(40);int pos1 = lower_bound(a.begin(),a.end(),5)-a.begin();int pos2 = upper_bound(a.begin(),a.end(),5)-a.begin();cout << "pos1"<<"="<<pos1<<endl;cout << "pos2"<<"="<<pos2<<endl;return 0; }
运行结果:
pos1=3
pos2=4
同样如果把要查找的数字K换成45,则会返回数组最后的下标位置(我就不写了,和前面都一样)
set容器
set<int>a;
a.lower_bound(x); //查找大于等于 x 的元素中最小的一个,并返回指向该元素的迭代器。
a.upper_bound(x); //查找大于 x 的元素中最小的一个,并返回指向该元素的迭代器。
#include<iostream>
#include<algorithm>
#include<set>
using namespace std;
int main()
{set<int> a;a.insert(1);a.insert(3);a.insert(4);a.insert(5);a.insert(7);a.insert(9);a.insert(10);a.insert(26);a.insert(29);a.insert(40);set<int>::iterator it;it = a.lower_bound(5);cout<<"大于等于5的第一个值"<<"="<<*it<<endl;it = a.upper_bound(5);cout<<"大于5的第一个值"<<"="<<*it<<endl;return 0; }
运行结果:
大于等于5的第一个值=5
大于5的第一个值=7
lower_bound()函数和upper_bound函数相关推荐
- C++中lower_bound函数和upper_bound函数
STL中关于二分查找的函数有三个lower_bound .upper_bound .binary_search .这三个函数都运用于有序区间(当然这也是运用二分查找的前提),下面记录一下这两个函数. ...
- C语言bound函数,C++中lower_bound函数和upper_bound函数
STL中关于二分查找的函数有三个lower_bound .upper_bound .binary_search .这三个函数都运用于有序区间(当然这也是运用二分查找的前提),下面记录一下这两个函数. ...
- upperbound找不到_lower_bound()函数和upper_bound()函数,以及二分查找
lower_bound(): 默认版本 template ForwardIterator lower_bound (ForwardIterator first, ForwardIterator las ...
- C++ lower_bound 与 upper_bound 函数
头文件: #include <algorithm> 二分查找的函数有 3 个: 参考:C++ lower_bound 和upper_bound lower_bound(起始地址,结束地址 ...
- lower_bound()/upper_bound()函数(C++)
文章目录 1.lower_bound()/upper_bound()函数简单介绍 2.lower_bound()/upper_bound()函数分析 3.lower_bound()/upper_bou ...
- C++ lower_bound() upper_bound() 函数用法详解(深入了解,一文学会)
find().find_if().search() 等.值得一提的是,这些函数的底层实现都采用的是顺序查找(逐个遍历)的方式,在某些场景中的执行效率并不高.例如,当指定区域内的数据处于有序状态时,如果 ...
- lower_bound()和upper_bound( )函数详解
lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的.两个函数的用法类似,在一个左闭右开的有序区间里进行二分查找,需要查找的值由第三个参数给出 ...
- oracle中的循环函数,Oracle日期函数和循环总结
一,日期相关的函数 Select to_char(sysdate,'Q') from dual;--指定日期的季度 Select to_char(sysdate,'MM') from dual;--月 ...
- render函数和redirect函数的区别+反向解析
render函数和redirect函数的区别+反向解析 1.视图函数:一定是要包含两个对象的(render源码里面有HttpResponse对象) request对象:----->所有的请求 ...
最新文章
- idea svn的项目无法标识修改新增的类_是时候让你的 IDEA 飞起来啦!
- php键顺序初始化,Java类中各成员初始化的顺序
- Spring 基于Java配置
- 安卓高手之路之ClassLoader(三)
- ubuntu14.04 LTS 搜狗输入法安装和不能输入中文的解决方法
- C#中使用指针转换数据类型[C#/unsafe]
- html 手写字效果,canvas画布实现手写签名效果的示例代码
- java中string和int的相互转换
- iFrame can't save session cookie
- 201521145048 《Java程序设计》第3周学习总结
- 详解iOS开发之自定义View
- c语言画bode图程序,根据上位机测得的Bode图的幅频特性,就能确定系统(或环节)的相频特性,试问这在什么系统时才能实现?...
- 刚知道,qq聊天的时候可以这么装逼
- Energy python API 代码学习
- 两向量点乘坐标运算_向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读...
- 更实用 批量解析 Sanger 测序.ab1文件 出图出文本
- 百度paddle pahelix化合物分子和蛋白质氨基酸序列向量表示
- java添加窗体中_java中利用JFrame创建窗体 【转】
- 系统封装Win10专业版1803
- linux驱动开发之内核线程