adjacent_difference
来自cppreference.com
语法:
#include <numeric>
output_iterator adjacent_difference
( input_iterator start,
input_iterator end,
output_iterator result );
output_iterator adjacent_difference
( input_iterator start,
input_iterator end,
output_iterator result,
BinaryFunction f );
adjacent_difference()函数计算区间[start,end)中相邻元素的差值,并且将结果存储在从result开始的地方。
(特别地,位于start处的元素将被复制到result;而且start + i与start + (i-1)的差值将会被存储到result + i。
如果给定了二元函数f,则f将被用作计算差值的操作而不是-操作。
参数
todo
返回值
todo
例子
下面的例子显示了vector中相邻元素的差值。
#include <algorithm>
#include <iostream>
#include <iterator>
#include <numeric>
#include <vector>
int main()
{
std::vector<int> v;
for (int i = 3; i <= 10; ++i)
v.push_back(i);
// display elements of v
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
// display all differences between elements
std::adjacent_difference(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
return 0;
}
当运行时,这个代码会显示如下的输出:
3 4 5 6 7 8 9 10
3 1 1 1 1 1 1 1
复杂度
adjacent_difference() 函数在 线性时间内完成。