【STL】lower_bound、upper_bound的使用

 东西都在代码里面了……

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<algorithm>
#include<cmath>
using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
#define INF 1<<30
#define sscc ios::sync_with_stdio(false)
const int MAXN = 5;
typedef unsigned long long ull;

int main(){
	sscc;	
	/*
		区间:前闭后开 
		//升序:  
		lower_bound(begin,end,num)			返回第一个大于或等于num的数
		upper_bound(begin,end,num)			返回第一个大于num的数
		
		//降序
		lower_bound(begin,end,num)			返回第一个小于或等于num的数
		upper_bound(begin,end,num)			返回第一个小于num的数
	*/
	
	//升序 
	int a[MAXN]={6,8,10,12,14};
	//前闭后开 
	cout << a[lower_bound(a,a+MAXN,11)-a] << endl;	//从开始到结尾寻找第一个大于或等于 num的数,返回下标
	cout << a[upper_bound(a,a+MAXN,7)-a] << endl;  //  返回第一个大于num的数  下标
	
	
	//降序 
	int b[MAXN]={14,12,10,8,6};
	cout << b[lower_bound(b,b+MAXN,11,greater<int>())-b] << endl;	//返回数组中第一个小于或等于 num的数,	
	cout << b[upper_bound(b,b+MAXN,7,greater<int>())-b] << endl; 	//返回数组中第一个小于num的数 
	
	return 0;
}
发布了177 篇原创文章 · 获赞 282 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/lesileqin/article/details/100776237
今日推荐