Смежная разность (Adjacent difference)
Смежная разность (Adjacent difference)
template ‹class InputIterator, class OutputIterator›
OutputIterator adjacent_difference(InputIterator first, InputIterator last, OutputIterator result);
template ‹class InputIterator, class OutputIterator, class BinaryOperation›
OutputIterator adjacent_difference(InputIterator first, InputIterator last, OutputIterator result, BinaryOperation binary_op);
adjacent_difference присваивает каждому элементу, указываемому итератором i в диапазоне [result+1, result+(last-first)) значение, соответственно равное *(first+(i-result))-*(first+(i-result)-1) или binary_op(*(first+(i-result)), *(first+(i-result)-1)). Элемент, указываемый result, получает значение *first. Функция adjacent_difference возвращает result+(last-first). Применяется binary_op точно (last-first)-1 раз. Ожидается, что binary_op не имеет каких-либо побочных эффектов. result может быть равен first.