我已经在std::chrono::duration<double>
变量中存储了算法的持续时间,我想重复几次实验(让我们说3次)所以我想在一个向量中存储三个持续时间来计算均值。
我使用double的向量(存储time.count()
)。
持续时间或多或少,
0.003,
0.004,
0.003
当我计算平均值(使用双倍)时,结果为 0 。
在计算平均值时,是否有更高的精度?
答案 0 :(得分:0)
您需要在矢量中执行循环,以便计算平均值。
double sum = 0;
//define 3 duration objects and initialize it later
std::chrono::duration<double> a(0.003);
std::chrono::duration<double> b(0.004);
std::chrono::duration<double> c(0.003);
//define a vector of durations
std::vector<std::chrono::duration<double>> times{a, b, c};
//calcuöate the sum of all element in vector
for (auto x : times)
{
sum += x.count();
}
//calculate mean as double
double mean = sum / times.size();
std::cout << "Mean Duration: " << mean <<std::endl;