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\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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM