binary_search() :
- 查找指定值,存在返回下标,否则返回假
- idx = binary_search(A,A+n,want);
lower_bound() :
- 返回一个迭代器,指向第一个 大于等于 指定值得元素
- 找不到时返回末尾迭代器,可以计算距离如果大于最大下标则不存在
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int A[14]={1,1,2,2,2,4,5,5,6,8,8,8,10,15};
int * pos;
int idx;
pos = lower_bound(A,A+14,3);//查找第一个大于等于3的元素,返回迭代器
idx = distance(A,pos);//计算连个迭代器距离,即返回目标的下标
cout<<"A["<<idx<<"]="<<*pos<<endl;
//A[5]=4;
}
upper_bound() :
- 查找第一个大于指定值得元素,用法同上