C++ Wiki

2015.04.07

Tags: STL

総和と総乗の計算

サンプルコード

#include <iostream>
#include <algorithm>
#include <vector>

int main()
{
  std::vector<int> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

  int sum = std::accumulate(v.begin(), v.end(), 0);
  int prod = std::accumulate(v.begin(), v.end(), 1, std::multiplies<int>());

  std::cout << "sum=" << sum << ", prod=" << prod << std::endl;

  int sum2 = std::accumulate(v.begin(), v.end(), 0, [](int a, int b){ return a + (b % 2 == 0 ? b : 0); });

  std::cout << "sum2=" << sum2 << std::endl;

  return 0;
}

sum2は偶数要素の総和。

実行結果

sum=55, prod=3628800
sum2=30