stl——二分查找

    xiaoxiao2021-03-26  20

    在stl中对二分查找进行了封装,有两种——upper_bound,lower_bound。

    例如:pos=lower_bound(a,a+n,value);///查找value值在长度为n的数组a中的位置

    关于返回值,函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置

    upper_bound返回大于val的第一个元素位置

    #include<iostream> #include <algorithm>//必须包含的头文件 using namespace std;

    int main(){  int point[10] = {1,3,7,7,9};  int tmp = upper_bound(point, point + 5, 7) -point;//按从小到大,7最多能插入数组point的哪个位置  printf("%d\n",tmp);  tmp = lower_bound(point, point + 5, 7) -point;按从小到大,7最少能插入数组point的哪个位置  printf("%d\n",tmp);  return 0; }

    output:

    4

    2

    革命尚未成功!

    转载请注明原文地址: https://ju.6miu.com/read-659904.html

    最新回复(0)