2017-04-27 232 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;