__lower_bound
时间: 2024-02-25 17:50:09 浏览: 72
BOTTOM
__lower_bound是C++标准库中的一个函数,用于在有序序列中查找第一个大于或等于给定值的元素的位置。它的定义如下:
```cpp
template <class ForwardIterator, class T>
ForwardIterator __lower_bound(ForwardIterator first, ForwardIterator last, const T& value)
{
ForwardIterator it;
typename std::iterator_traits<ForwardIterator>::difference_type count, step;
count = std::distance(first, last);
while (count > 0) {
it = first;
step = count / 2;
std::advance(it, step);
if (*it < value) {
first = ++it;
count -= step + 1;
} else {
count = step;
}
}
return first;
}
```
该函数接受三个参数:`first`和`last`是表示有序序列的迭代器范围,`value`是要查找的值。函数返回一个迭代器,指向第一个大于或等于`value`的元素。
如果在序列中找到了大于或等于`value`的元素,则返回该元素的迭代器;如果没有找到,则返回`last`。
__lower_bound函数的时间复杂度为O(log n),其中n是序列中元素的个数。
阅读全文