多语言展示
当前在线:1556今日阅读:11今日分享:19

c++语言中的std::upper_bound如何使用

upper_bound()是c++语言STL库中一个重要的函数,他的作用时从范围[first,last)范围中找到第一个大于value值的元素所在的索引位置。下面,将简单介绍一下该函数的用法。
工具/原料
1

c++11编译器

2

code::Blocks

方法/步骤
1

该函数基本语法格式为:upper_bound (ForwardIterator first, ForwardIterator last,  const T& val)返回的是在范围[ first, last)内第一个大于val的元素所在的位置,类型与first,last一致。

2

第一种用法对于STL库中的容器vector,可以结合内嵌的迭代器iterator来使用upper_bound 函数。#include#includeusing namespace std;int main(){      vector v={0 ,2 ,1 ,4 ,7 ,6};      vector::iterator up1;      up1=upper_bound(v.begin(),v.end(),3);      cout<

3

最后输出的结果是vector 中第一个大于3的元素所在的位置。输出为3,没有问题。

4

第二种用法:对于数组又改如何操作呢?类似的,我们可以写下如下程序:#includeusing namespace std;int main(){      int a[6]={1,3,5,6,7,9};      int temp=upper_bound(a,a+6,7)-a;      cout<

5

最后输出的结果是5,符合条件。

6

类似的我们还可以在数组中设定的区间进行查找,就不给出代码了用法:int t=upper_bound(a+l,a+r,m)-a在这里,a表示数组第一个元素所在的指正,l与R可以确定数组内的区间

注意事项

如果对您有帮助请点个赞投个票吧

推荐信息