28 Algorithms library [algorithms]

28.5 Non-modifying sequence operations [alg.nonmodifying]

28.5.6 Find end [alg.find.end]

template<class ForwardIterator1, class ForwardIterator2> ForwardIterator1 find_end(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2); template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2> ForwardIterator1 find_end(ExecutionPolicy&& exec, ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2); template<class ForwardIterator1, class ForwardIterator2, class BinaryPredicate> ForwardIterator1 find_end(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred); template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2, class BinaryPredicate> ForwardIterator1 find_end(ExecutionPolicy&& exec, ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred);

Effects: Находит подпоследовательность равных значений в последовательности.

Returns: Последний итератор i в диапазон , [first1, last1 - (last2 - first2)) например , что для каждого неотрицательного целого числа n < (last2 - first2), следующие соответствующие условия: *(i + n) == *(​first2 + n), pred(*(i + n), *(first2 + n)) != false. Возвращает, last1 если [first2, last2) пуст или если такой итератор не найден.

Complexity: Максимум (last2 - first2) * (last1 - first1 - (last2 - first2) + 1) применений соответствующего предиката.