2017-04-27 233 views
0

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

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

的持续时间是,更多或更少的,

0.003,

0.004,

0.003

,当我计算的平均值(使用双)的结果是。

无论如何要计算平均值时有更精确的?

+0

我们可以看到该计算的代码吗? –

+0

'double sum = 0;对于(int i = 0; i

+1

请**用[mcve]或[SSCCE(Short,Self Contained,Correct Example)](http:// sscce。 ORG) – NathanOliver

回答

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;