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).
- first, last - Iteradores que definem o intervalo
- 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;
}