gpt4 book ai didi

c++ - 计算大小增加的 vector 的平均值

转载 作者:行者123 更新时间:2023-11-27 23:57:59 29 4
gpt4 key购买 nike

我有一个每秒运行数百次的渲染函数,它告诉我每帧绘制需要多少毫秒。

我做了一个函数来计算所有帧的当前渲染速度平均值,它使用 std::vector 来保存所有之前的帧。

但是,每次我运行我的程序时,存储平均值的 vector 都会变得很大并占用越来越多的内存,同时使我的程序减慢近 10 倍(绘制速度)。

平均函数(请注意我是 C++ 初学者):

double average(std::vector<double> input_vector)
{
double total = 0;

for(unsigned int i = 0; i < input_vector.size(); i++)
{
total += input_vector.at(i);
}

return (total / (double)input_vector.size());
}

有人可以帮我解决这个问题吗?

谢谢

最佳答案

鉴于算术平均值的定义是 sum( n )/count( n ) 您不需要存储 n 的每个值以重新计算运行意思是,你只需要当前的 sum 和当前的 count,就像这样:

double runningMean(double newValue) {
static double sum = 0;
static double count = 0;

count++;
sum += newValue;

return sum / count;
}

根本不需要vector

关于c++ - 计算大小增加的 vector 的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41194836/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com