lower

您所在的位置:网站首页 lower函数和upper函数 lower

lower

2024-01-25 17:53| 来源: 网络整理| 查看: 265

lower_bound()和upper_bound()简单总结

目录 lower_bound()和upper_bound()简单总结一、简介二、函数原型三、作用四、函数的引用五、引用示例总结

一、简介

1.lower_bound()和upper_bound()都是c++ 标准库中的函数。 2.二者都利用二分查找的方法查找已排序的数组中的元素。 3.它们的返回值都是一个地址。

二、函数原型

lower_bound的原型有两个 原型1:

template ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last,const T& val);

原型2:

template ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last,const T& val, Compare comp);

三、作用

lower_bound()用于在已排好序的数组中找出大于等于目标元素的下标最小的元素的地址。 upper_bound()用于在已排好序的数组中找出大于目标元素的下标最小的元素的地址。

四、函数的引用

这两个函数都有三(四)个参数,第四个参数是被查找函数的排序方式,如果不填就默认为从小到大排序。 第一个参数是被查找数组的首地址,第二个参数是末地址,第三个是要目标元素,第四个是被查数组的排序方式。 被查数组排序方式写的时候返回值应为bool类型,设定两个参数(与被查数组内元素类型相同即可)。

五、引用示例

例1:(三参数)

int a[8]={1,2,3,4,5,6,7,8};//排好序的数组 int *p1=lower_bound(a,a+8,6);//这里的返回值是第一个大于等于6的数,也就是6 int *p2=upper_bound(a,a+8,6);//这里的返回值是第一个大于6的数,也就是7 cout71,22,83,4,15,26,67,28};//已经按照个位数从小到大排好序的数组 int *p1=lower_bound(a,a+8,36,cmp);//第一个个位数大于等于“36的个位数”的数是26 int *p2=upper_bound(a,a+8,36,cmp);//第一个个位数大于“36的个位数”的数是67 cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3