C++ lower_bound/upper_bound用法解析

C++ lower_bound/upper_bound用法解析

1. 作用
           lower_bound和upper_bound都是C++的STL库中的函数,作用差不多,lower_bound所返回的是第一个大于或等于目标元素的元素地址,而upper_bound则是返回第一个大于目标元素的元素地址。

            从定义就可以看出两者的差别只差在是否取等的的地方  那何必要设置两个函数呢(bushi

2.使用条件
            用lower_bound/upper_bound进行二分查找时必须保证查找区间为升序序列!

            什么是升序序列?你小学老师没教过你吗(bushi  举个例子你就明白了:

 

        从第一个元素开始,后面的每一个元素都会大于等于前面一个元素 

   显然造成这种限制的原因就是出现在制作STL库的人身上 Orz,因为他所写的比较器是‘<’。 

3.用法
            lower_bound和upper_bound的用法与sort类似: 

1 lower_bound(起始位置first,结束位置last,目标元素val);
2 upper_bound(起始位置first,结束位置last,目标元素val);
3  //lower_bound/upperbound的返回值是一个地址值,若要得到目标元素的下标,直接减去数组首地址的值即可
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » C++ lower_bound/upper_bound用法解析