lower_bound()和upper_bound()的几种用法
作者:
学不会就开摆
,
2021-12-19 11:47:45
,
所有人可见
,
阅读 276
### lower_bound()和upper_bound()的几种用法
#include<bits/stdc++.h>
using namespace std;
int main(){
vector<int>q;
int x;
sort(q.begin(),q.end()); //按从小到大排序
int t1 = q[lower_bound(q.begin(),q.end(),x)-q.begin()]; //返回数组中第一个大于或等于x的值
int t2 = q[upper_bound(q.begin(),q.end(),x)-q.begin()]; //返回数组中第一个大于x的值
sort(q.begin(),q.end(),greater<int>()); //按从大到小排序
int t3 = q[lower_bound(q.begin(),q.end(),x)-q.begin()]; //返回数组中第一个小于或等于x的值
int t4 = q[upper_bound(q.begin(),q.end(),x)-q.begin()]; //返回数组中第一个小于x的值
return 0;
}
这个真的是正确的代码吗,跑起来有奇怪的报错
我重新改了下,之前确实有些问题,现在应该没问题了
谢谢Orz