```
template<class ForwardIterator>
ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last);
template<class ForwardIterator, class BinaryPredicate>
ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last,
BinaryPredicate pred);
```

*Returns:*
The first iterator
i
such that both
i
and
i + 1
are in
the range
[first,last)
for which
the following corresponding conditions hold:
*i == *(i + 1), pred(*i, *(i + 1)) != false.
Returns last
if no such iterator is found.

*Complexity:*
For a nonempty range, exactly
min((i - first) + 1, (last - first) - 1)
applications of the corresponding predicate, where i is
adjacent_find's
return value.