我想编写一个代码来查找上限stl函数,该函数返回元素的POSITION大于给定元素。 我已经为下限做了这个,但是不能用于上限,而且我也不想使用其他stl函数来找到位置。
代码:
int lowerBound(int a[], int n, int key)
{
int low = 0, high = n-1, mid, pos = -1;
while(low <= high)
{
mid = (low + high)/2;
if(a[mid] < key)
{
low = mid+1;
}
else
{
pos = mid;
high = mid-1;
}
}
return pos;
}