您的位置:首页 > 其它

【菜鸟er】搜索专题_STL搜索

2018-03-17 09:36 204 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: