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
本文介绍了使用C++标准库中的lower_bound和upper_bound函数来查找已排序数组中特定值的位置。通过示例代码展示了如何寻找大于等于指定值的元素下标及大于该值的元素下标。
5929

被折叠的 条评论
为什么被折叠?



