std :: chrono的精度:: duration <double>和double - C ++

时间:2017-04-27 12:42:23

标签: c++ c++11 double mean chrono

我已经在std::chrono::duration<double>变量中存储了算法的持续时间,我想重复几次实验(让我们说3次)所以我想在一个向量中存储三个持续时间来计算均值。

我使用double的向量(存储time.count())。

持续时间或多或少,

  

0.003,

     

0.004,

     

0.003

当我计算平均值(使用双倍)时,结果为 0

在计算平均值时,是否有更高的精度?

1 个答案:

答案 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;