头文件 #include < algorithm >
lower_bound :返回一个非递减序列[first, last)中的第一个大于等于值val的位置.
upper_bound:返回一个非递减序列[first, last)中第一个大于val的位置.
#include <stdio.h>
//#include <bits/stdc++.h>
#include < algorithm >
using namespace std;
const int N=...
int a[N];
int main()
{
...
//size是非递减序列a[]的大小
int tmp1=lower_bound(a,a+size,val)-a;//返回a[]中第一个大于等于val的位置
int tmp2=upper_bound(a,a+size,val)-a;//返回a[]中第一个大于val的位置
...
}
map也可以用
比如:
map<int,int> mp;
map<int,int>::iterator it1,it2;
int key;
it1=mp.lower_bound(key);//返回map中第一个大于或等于key的迭代器指针
it2=mp.upper_bound(key);//返回map中第一个大于key的迭代器指针
//如果没找到的话返回mp.end()