版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

代码块
linenumberstrue
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));
}