#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
//二分搜索:lower_bound() upper_bound() binary_search()
int a[10] = {12,23,45,56,78,89,91,93,94,95};
int *p;
int idx;
//前提:有序数据 //sort(a,a+n);
p = lower_bound(a,a+10,78);//返回大于或等于val的第一个元素位置。
//如果所有元素都小于val,则返回最后一个元素的位置.
idx = distance(a,p);//返回两个迭代器的距离
cout<<"a["<<idx<<"] = "<<*p<<endl;
p = upper_bound(a,a+10,78);//返回大于val的第一个元素位置。
//如果所有元素都小于val,则返回最后一个元素的位置.
idx = distance(a,p);
cout<<"a["<<idx<<"] = "<<*p<<endl;
bool k = binary_search(a,a+10,56);//返回值是bool
cout<< ((k)?"YES":"NO") <<endl;
return 0;
}
【菜鸟er】搜索专题_STL搜索
最新推荐文章于 2023-02-12 10:58:15 发布