有序区间算法中:
1.binary_search:查找某个元素是否出现
函数模板:binary_search(arr[],arr[]+size,indx)
出现为1,不出现为0;
2.lower_bound:查找第一个小于某个元素的位置
函数模板:lower_bound(arr[],arr[]+size,indx)
关于这个位置[begin,it),在it之前的那些都要比index小,但是返回的是比那些最小后面一个位置。
3.upper_bound : 查找第一个大于某个元素的位置
函数模板 : upper_bound(arr[] , arr[]+size , indx)
返回的是[it,end),返回it
关联函数算法中:
find:查找某个元素是否出现,返回指针。
函数模板:find(begin(),end(),index)
find在关联函数和数组也可以用,返回迭代器的返回值。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int bns[100]={1,2,5,9,10,11,45};
vector<int> ans;
ans.push_back(1);
ans.push_back(4);
ans.push_back(9);
ans.push_back(10);
cout<<binary_search(bns,bns+7,5)<<endl;
cout<<lower_bound(bns,bns+7,5)-bns<<endl;
cout<<upper_bound(bns,bns+7,5)-bns<<endl;
vector<int>::iterator b;
b=find(ans.begin(),ans.end(),9);
cout<<*b<<endl;
int* c;
c=find(bns,bns+7,11);
cout<<*c<<endl;
return 0;
}