C++ lower_bound()函数
lower_bound() 函数用于在指定区域内查找大于等于目标值的第一个元素。(最终查找到的不一定是和目标值相等的元素,还可能是比目标值大的元素。)
ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val);
- 它在头文件
#include <algorithm>
中。 - 该函数仅适用于已排好序的序列
- 如果没找到,返回end()
ForwardIterator就是一个迭代器,vector< int > v,v数组的首元素就是 v.begin()
T&val , 就是一个T类型的变量
Compare 就是一个比较器,可以传仿函数对象,也可以传函数指针
first,last: 迭代器在排序序列的起始位置和终止位置,使用的范围是[first,last).包括first到last位置中的所有元素
val: 在[first,last)下,也就是区分(找到大于等于val值的位置,返回其迭代器)
comp: 主要针对于原型二,传一个函数对象,或者函数指针,按照它的方式来比较
返回值:返回一个迭代器,指向第一个大于等于val的位置
eg1 :vector<int> v= {3,4,1,2,8};
//先排序
sort(v.begin(),v.end()); // 1 2 3 4 8
iter1 = lower_bound(v.begin(),v.end(),3);//迭代器指向3
cout << iter1 - v.begin() << endl; //下标 2