欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

(C++)upper

时间:2023-04-30

最近接触了C++中的这两个函数,发现网上写的都不是很清楚,这里写一下他们的用法并且举两个例子。

函数的参数如下(这里摘自C语言中文网),这里的返回值返回的都是迭代器,最后一个比较函数可选,选了不同的比较函数带来的效果是完全不同的。这个比较函数的意思,上面也注明了,是查找不符合这个比较规则,当没有这个cmp函数的时候,默认的比较规则是小于,当然没有的时候可以不用太多思考,直接就是不小于和大于就行。

这两个函数本身的意思

#include#include using namespace std;int main(){ int a[10] = {1,2,3,4,5,6,7,8,9,10}; cout<<*lower_bound(a,a+10,6)<

结果

 

lower_bound() 函数查找升序数组中大于等于(>=)指定元素的第一个元素。

upper_bound()函数查找升序数组中大于(>)指定元素的第一个元素。

··············································································································分割线

如果我想将该函数用于下降序列的话,使用greater函数,但是意义会改变

#include#include using namespace std;int main(){ int a[10] = {10,9,8,7,6,5,4,3,2,1}; cout<<*lower_bound(a,a+10,6,greater())<())<

那么输出结果就变成了6和5

 使用自定义比较器(greater)函数查找到的就是

lower_bound() 函数查找降序数组中小于等于(<=)指定元素的第一个元素。

upper_bound()函数查找降序数组中小于(<)指定元素的第一个元素。

还有很多情况,可以移步C语言中文网,我只是搬运一些知识并实践,希望能够帮助更多不熟悉这两个函数的人减少一些测试时间。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。