Adjacent_find is an overloaded name; there are actually two adjacent_find
functions.
template <class ForwardIterator>
ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last);
template <class ForwardIterator, class BinaryPredicate>
ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last,
BinaryPredicate binary_pred);
Description
The first version of adjacent_find
returns the first iterator i such that i and i+1
are both valid iterators in [first, last), and such that
*i == *(i+1). It returns last if no such iterator exists.
The second version of adjacent_find
returns the first iterator i such that i and i+1
are both valid iterators in [first, last), and such that
binary_pred(*i, *(i+1)) is true.
It returns last if no such iterator exists.