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

[编辑] 参见

accumulate, count, inner_product, partial_sum

个人工具
名字空间
操作
导航
工具箱
其他语言