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() 函数在 线性时间内完成。