C++ - Vector 计算 均值(mean) 和 方差(variance)
代码:
double sum = std::accumulate(std::begin(resultSet), std::end(resultSet), 0.0);
double mean = sum / resultSet.size(); //均值
double accum = 0.0;
std::for_each (std::begin(resultSet), std::end(resultSet), [&](const double d) {
accum += (d-mean)*(d-mean);
});
double stdev = sqrt(accum/(resultSet.size()-1)); //方差
std::accumulate 基本用法: std::accumulate
vector<int> vi{1, 2, 3};
cout << accumulate(vi.begin(), vi.end(), 0); // 6
accumulate带有三个形参:头两个形参指定要累加的元素范围,第三个形参则是累加的初值。
头文件:
#include<numeric>