upper_bound()与lower_bound()使用方法

时间:2022-03-02 13:06:24
#include <algorithm>//必须包含的头文件
#include <stdio.h>
using namespace std;
int main()
{
int n,a[100],m;
int left,right,i;
scanf("%d",&n);//设初始数组内元素有n个
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&m);//插入的数为m
left = upper_bound(a,a+n,m)-a;//按从小到大,m最多能插入数组a的哪个位置
right = lower_bound(a,a+n,m)-a;//按从小到大,m最少能插入数组a的哪个位置

printf("m最多能插入数组a的%d\n",left);
for(i=0;i<left;i++)
printf("%d ",a[i]);
printf("%d ",m);
for(i=left;i<n;i++)
printf("%d ",a[i]);

printf("\n");

printf("m最少能插入数组a的%d\n",right);
for(i=0;i<right;i++)
printf("%d ",a[i]);
printf("%d ",m);
for(i=right;i<n;i++)
printf("%d ",a[i]);
return 0;
}