Translations of this page?:

adjacent_difference/隣接相違

文法:

    #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)の隣接した要素の差を計算し、各開始位置に結果を保存します。 (具体的には、開始位置の要素は、結果へコピーされます; そして、開始位置 + i の要素と 開始位置 + (i-1) の違いは、結果位置 + i に保存されます。)

二項関数 f が与えられた場合、違いを計算する - 演算子の代わりに、それが使用されます。 adjacent_difference() は、線形時間で実行します。

以下の例は、vector の隣接した要素の違いを表示します。

 #include <vector>
 #include <iostream>
 #include <iterator>
 #include <algorithm>
 #include <numeric>
 
 int main()
 {
   std::vector<int> v;
   for (int i = 1; i <= 10; ++i)
     v.push_back(i);
 
   // v の要素を表示
   std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
 
   std::cout << std::endl;
 
   // 要素のすべての違いを表示
   std::adjacent_difference(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
 
   return 0;
 }

実行時に、このコードは以下の出力を表示します:

 1 2 3 4 5 6 7 8 9 10
 1 1 1 1 1 1 1 1 1 1

関連トピック: accumulate, count, inner_product, partial_sum

 
• • • SitemapRecent changesRSScc