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



