STL中二分查找函数——binary_search//lower_bound//upper_bound//equal_range

无人久伴 提交于 2020-02-06 05:29:52

以下函数均需配合头文件< algorithm>和sort函数排序后使用

  • lower_bound
    int lower_bound(start,end,num);
    返回值是int类型,返回的是一个指针,意义是在[start,end)范围内第一次遇到大于或等于num的下标。

  • upper_bound
    int upper_bound(start,end,num);
    返回值是int类型,返回的是一个指针,意义是在[start,end)范围内第一次遇到大于却不等于num的下标。
    在这里插入图片描述

  • binary_search
    bool binary_search(start,end,num);
    返回值是bool类型,意义是在[start,end)范围内是否有num

  • equal_range
    pair upper_bound(start,end,num);
    返回值是pair类型,返回pair< i , j > 。意义是在[ i , j )区间上的数都等于num,相当于是lower_bound和upper_bound的结合

以上函数都是以二分为实现在已排好序的数组或容器中查找的函数,当返回值意义各不相同

(图片来自https://blog.csdn.net/u010700335/article/details/41323427)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!