gpt4 book ai didi

multithreading - 如何使用Qt多线程进行并行列表处理?

转载 作者:行者123 更新时间:2023-12-03 13:02:01 24 4
gpt4 key购买 nike

我正在使用qt制作分析大量数据的软件。数据由单独的“Uber”订单组成,并包含诸如订单时间,开始位置和结束位置之类的信息,我需要能够评估数据,例如绘制随时间变化的需求图。
为此,我必须检查数据的每条记录,并根据其时间戳将其汇总到新的数据表中,这需要很长时间,因此我的初始解决方案是使用QtConcurrent::filterReduced来获取我的总和。
但是,筛选器函数不能使用额外的参数来根据我想要的时间间隔筛选数据。
我的问题是,针对这种问题是否还有另一种快速简便的解决方案?还是我需要为此使用QThread的低级API,如果有,那么有关如何实现该目标的任何示例/教程?

最佳答案

除了传递函数外,还可以传递包含“参数”的函数对象。
这样的事情(这里T是您的数据类型):

struct FilterWithTime
{
FilterWithTime(const QString &filterPredicate)
: m_filterPredicate(filterPredicate) { }

typedef bool result_type;

bool operator()(const T &value)
{
... test value against filterPredicate
}

QString m_filterPredicate;
};

QtConcurrent::filterReduced<ResultType>(your-list-of-T, FilterWithTime(QString("10-12"), YourTransformationObject()));
注意使用ResultType的显式实例化!

关于multithreading - 如何使用Qt多线程进行并行列表处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65310472/

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