...
代码块 | ||
---|---|---|
| ||
template <class ForwardIterator, class T> ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val); template <class ForwardIterator, class T, class Compare> ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val, Compare comp); template <class ForwardIterator, class T> ForwardIterator upper_bound (ForwardIterator first, ForwardIterator last, const T& val); template <class ForwardIterator, class T, class Compare> ForwardIterator upper_bound (ForwardIterator first, ForwardIterator last, const T& val, Compare comp); |
函数说明:
lower_bound(first, last, val)
:查找区间内第一个大于或等于val的元素位置,查找失败返回last。upper_bound(first, last, val)
:查找区间内第一个大于val的元素位置,查找失败返回last。
此外,标准库中还有一个binary_search(first, last, val)方法,这个方法用于判断区间内是否存在val元素,返回bool值,以下是这个方法的实现:
代码块 |
---|
template <class ForwardIterator, class T>
bool binary_search (ForwardIterator first, ForwardIterator last, const T& val)
{
first = std::lower_bound(first,last,val);
return (first!=last && !(val<*first));
} |