upper_bound()函数的应用
2026-08-05 15:08:07
发布于:江苏
14阅读
0回复
0点赞
upper_bound()函数可以输入三个参数,区间的两端和x,通常写( a , a+n , x ) 或者 ( a.begin() , a.end() , x ),运行后返回一个迭代器,迭代器储存的是第一个大于x元素的地址,如果x大于所有元素,返回a.end()。
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
int n,x;
cin>>n>>x;
vector<int> a(n,0);
for(int i=0;i<n;i++) cin>>a[i];
auto it=upper_bound(a.begin(),a.end(),x);
if(it==a.begin()) cout<<-1;//如果it等于a.begin(),代表a[0]已经大于x,没有最后一个小于等于x的数
else cout<<*(it-1);
return 0;
}
这里空空如也

有帮助,赞一个