28 Algorithms library [algorithms]

28.5 Non-modifying sequence operations [alg.nonmodifying]

28.5.8 Adjacent find [alg.adjacent.find]

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: Первый итератор ,i такой , что оба i и i + 1 находится в диапазоне ,[first, last) для которых выполняются следующие соответствующие условия: *i == *(i + 1), pred(*i, *(i + 1)) != false. Возвращает, last если такой итератор не найден.

Complexity: Для перегрузок без ExecutionPolicy, а именно min((i - first) + 1, (last - first) - 1) применения соответствующего предиката, где i - adjacent_­findвозвращаемое значение. Для перегрузок с an ExecutionPolicy, O(last - first) применения соответствующего предиката.