template<class ForwardIterator>
ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last);
template<class ExecutionPolicy, class ForwardIterator>
ForwardIterator adjacent_find(ExecutionPolicy&& exec,
ForwardIterator first, ForwardIterator last);
template<class ForwardIterator, class BinaryPredicate>
ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last,
BinaryPredicate pred);
template<class ExecutionPolicy, class ForwardIterator, class BinaryPredicate>
ForwardIterator adjacent_find(ExecutionPolicy&& exec,
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 the overloads with no
ExecutionPolicy, exactly
min((i - first) + 1, (last - first) - 1)
applications of the corresponding predicate, where
i is
adjacent_find's
return value
. For the overloads with an
ExecutionPolicy,
applications of the corresponding predicate
.