配列の総和.関数オブジェクトで和以外の計算も可能.
struct multiply
{
public:
int operator()(int x, int y) { return x * y; };
};
int main()
{
std::array<int, 10> data;
for( size_t i = 0; i < data.size(); ++i)
{
data[i] = i+1;
}
int sum = std::accumulate( data.begin(), data.end(), 0 /* = initial value */ );
int product = std::accumulate( data.begin(), data.end(), 1, mutiply() );
std::cout << "Σdata = " << sum << std::endl;
std::cout << "Πdata = " << product << std::endl;
}

コメントをかく