upper_bound 返回第一个大于 k(要查找的数字)的数字的位置;
lower_bound 返回第一个等于k的数字位置,或返回第一个大于k数字的位置;
自己试验一下
代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int a[10] = {1,2,3,3,4,5,6,7,8,9};
int *tt = upper_bound(a,a+10,3); // upper_bound 返回第一个大于 k(要查找的数字)的数字的位置;
int *kk = lower_bound(a,a+10,3); // lower_bound 返回第一个等于k的数字位置,或返回第一个大于k数字的位置;
printf("tt==%d kk==%d\n",*tt,*kk);
printf("tt==%d kk==%d\n",tt,kk);
printf("a==%d\n",a);
printf("a+1==%d\n",a+1);
}