C++ std::chrono::duration的精度<;双倍>;和双C++;

C++ std::chrono::duration的精度<;双倍>;和双C++;,c++,c++11,double,mean,chrono,C++,C++11,Double,Mean,Chrono,我将算法的持续时间存储在一个std::chrono::duration变量中,我想重复实验几次(比如说3次),所以我想将三个持续时间存储在一个向量中,以计算平均值 我使用双精度向量(存储time.count()) 持续时间或多或少是 0.003 0.004 0.003 当我计算平均值时(使用双精度),结果是0 计算平均值时是否需要更高的精度?您需要在向量中进行循环,以便计算平均值 double sum = 0; //define 3 duration objects and initialize

我将算法的持续时间存储在一个
std::chrono::duration
变量中,我想重复实验几次(比如说3次),所以我想将三个持续时间存储在一个向量中,以计算平均值

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

持续时间或多或少是

0.003

0.004

0.003

当我计算平均值时(使用双精度),结果是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;
double sum=0;
//定义3个duration对象并稍后初始化
标准时间:持续时间a(0.003);
标准时间持续时间b(0.004);
标准时间持续时间c(0.003);
//定义持续时间向量
std::向量时间{a,b,c};
//计算向量中所有元素的和
用于(自动x:次)
{
sum+=x.count();
}
//将平均值计算为双精度
双平均值=总和/乘以.size();

我们能看到那个计算的代码吗?
double sum=0;对于(int i=0;i请用or键回答您的问题