1(Lower_bound)功能:1.寻找一个数组中大于等于x的元素的下标位置 ,如果未找到则返回last(last越界)
#include <stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int main(int argc, char *argv[])
{
int a[100];
int n;
while(scanf("%d",&n)!=EOF)
{
int i;
memset(a,0,sizeof(a));
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int x;
scanf("%d",&x);
int p=lower_bound(a,a+n,x)-a;
printf("%d\n",p);
}
return 0;
}
2.(Upper_bound)功能1.寻找大于于x的元素的下标
#include <stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int main(int argc, char *argv[])
{
int a[100];
int n;
while(scanf("%d",&n)!=EOF)
{
int i;
memset(a,0,sizeof(a));
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int x;
scanf("%d",&x);
int p=upper_bound(a,a+n,x)-a;
printf("%d\n",p);
}
return 0;
}
对于 1 2 3 4 5 x=2来说
lower_bound(x)返回2 Upper_bound(x)返回3