我有一个排序向量数组,
向量<int> b[1000009];
现在我必须在 b[factor] 行中搜索 x 和 y 之间的范围。
'factor'、'x' 和 'y' 都是整数。
我使用了以下方法:
int lb,ub;
if(b[factor][0]>=x){lb=0;}
else
{
lb=upper_bound(b[factor].begin(),b[factor].end(),x)-b[factor].begin();
while(b[factor][lb-1]>=x)lb--;
}
if(b[factor][sz2-1]<=y)
{
ub=sz2-1;
}
else {
ub=lower_bound(b[factor].begin(),b[factor].end(),y)-b[factor].begin();
while(b[factor][ub]>y)ub--;
}
但是这种方法并不是一直都给出正确的答案。除此之外,我还想使用一些比较器功能来实现相同的目的。这是我第一次使用lower_bound()和upper_bound()。所以请告诉我如何在这里实现比较器功能。