upper_bound()与lower_bound()使用方法

#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
",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("
");

    printf("m最少能插入数组a的%d
",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;
}
原文地址:https://www.cnblogs.com/ljhacm/p/6904414.html