【发布时间】:2015-01-10 22:28:10
【问题描述】:
对于家庭作业,我必须创建一个可以在任何容器上执行的模板化标准差函数。这是我所拥有的:
template <typename Container>
double findMean(Container c, int count){
double sum = 0;
for (auto&& e : c){
sum += e;
}
sum /= count;
return sum;
}
template <typename Container>
double findStDev(Container c){
double mean = findMean(c, c.size());
std::cout << mean << std::endl;
for (auto&& e : c){
e -= mean;
e *= e;
}
mean = sqrt(findMean(c, c.size()));
return mean;
}
我第一次找到平均值时我想除以容器的全尺寸(n),但是当我第二次找到它的标准差时,我需要除以 size-1(n-1 )。
.size() 函数是否适用于所有 c++ 容器?
【问题讨论】:
-
它适用于除内置数组之外的所有内容。 For now
-
顺便说一句,你不需要
::size来计算平均值。
标签: c++ math size containers standard-deviation