std::adjacent_difference

Calcula a diferença entre elementos adjacentes em um intervalo [first, last) e armazena os resultados em um intervalo de saída começando em result.

  • Cabeçalho: <numeric>
  • Assinatura:
adjacent_difference(InputIt first, InputIt last, OutputIt result);
adjacent_difference(InputIt first, InputIt last, OutputIt result, BinaryOperation op);
  • Parâmetros:
    • first, last - Iteradores que definem o intervalo [first, last) de entrada.
    • result - Iterador para o início do intervalo de saída.
    • op - Operação binária para calcular a diferença (padrão: subtração).
  • Retorno: Iterador para o fim do intervalo de saída.
  • Exceções: Depende da operação op; a função em si não lança, a menos que op o faça.
  • Versão: C++98
  • Performance: O(N), onde N é o número de elementos no intervalo.
  • Exemplo:
#include <numeric>
#include <vector>
#include <iostream>
int main() {
    std::vector<int> vec = {1, 4, 6, 8};
    std::vector<int> result(4);
    auto it = std::adjacent_difference(vec.begin(), vec.end(), result.begin());
    for (auto i = result.begin(); i != it; ++i) std::cout << *i << " "; // Imprime: 1 3 2 2
    return 0;
}