以下の処理と同様のことをしてくれます。
template <class InputIterator, class OutputIterator> OutputIterator partial_sum ( InputIterator first, InputIterator last, OutputIterator result ) { iterator_traits<InputIterator>::value_type val; *result++ = val = *first++; while (first!=last) *result++ = val = val + *first++; return result; }
これは便利。
#include <iostream> #include <numeric> using namespace std; int main() { int x[] = {0,1,2,3,4,5,6,7,8,9,10}; int y[11]; partial_sum(x, x+11, y); for (int i = 0; i < 11; i++) cout << y[i] << " "; cout << endl; return 0; }のように書くと、
0 1 3 6 10 15 21 28 36 45 55のように出力されます。
0 件のコメント:
コメントを投稿