前提:有序
1.从小到大
lower_bound(start,last,n) :返回第一个大于等于n的地址
upper_bound(start,last,n) :返回第一个大于n的地址
2.从大到小
lower_bound(start,last,n,greater<int>()) :返回第一个小于等于n的地址
upper_bound(start,last,n,greater<int>()) :返回第一个小于n的地址
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int cmp(int a,int b)
{
return a>b;
}
int main()
{
int a[10]={12,0,3,6,999,45,1,864,75,26};
sort(a,a+10);
for(int i=0;i<10;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cout<<"33在:"<<lower_bound(a,a+10,33)-a<<endl;
cout<<"6在"<<upper_bound(a,a+10,6)-a<<endl;
sort(a,a+10,cmp);
cout<<"从大到小排列"<<endl;
for(int i=0;i<10;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cout<<"33在:"<<lower_bound(a,a+10,33,greater<int>())-a<<endl;
cout<<"6在"<<upper_bound(a,a+10,6,greater<int>())-a<<endl;
return 0;
}