gpt4 book ai didi

c++ - 返回 QVector 的最佳方式

转载 作者:太空狗 更新时间:2023-10-29 23:30:23 26 4
gpt4 key购买 nike

我试图从一个应该计算移动平均值的函数返回一个 QVector。我的问题是如何使功能更有效率。数学很好,我更想知道我在返回 QVector 时是否做错了什么。这是我到目前为止的代码:

QVector<double> moving_exponential_average(const QVector<double>& a, double lambda) {
if(lambda <0 ) {
lambda = 0;
}
if(lambda >1) {
lambda = 1;
}
QVector<double> b;
b.reserve(a.size());

b.append(a[0]);
double l_inv = 1-lambda;
for(unsigned int i = 1; i < a.size(); ++i) {
b.append(a[i]*lambda+l_inv*b[i-1]);
}
return b;
}

我使用默认构造函数来防止 QVector 设置默认值。我用调整大小尝试了同样的事情,但速度要慢得多。您对如何优化它有什么建议吗?

问候

最佳答案

QVector 实现共享其数据 (http://qt-project.org/doc/qt-5.0/qtcore/implicit-sharing.html#implicitly-shared),因此您没有做错任何事。

关于c++ - 返回 QVector 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21366461/

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