QtConcurrent map()就位数组

时间:2015-12-01 20:40:46

标签: qt qtconcurrent qvector

我有一大堆浮动。 我想在其上调用QtConcurrent::map()并更改值。

我可以不制作数组副本吗? 似乎map()需要QVector作为参数,我无法找到从数组中初始化QVector而无需复制的方法。

1 个答案:

答案 0 :(得分:1)

QtConcurrent也有STL样式迭代器的版本。为此,原始指针具有STL样式迭代器的属性。

float x[] = {1.3f, 2.5f, 4.6f};
QFuture<void> f = QtConcurrent::map(x, x+3, [](float & a) { a = 2*a; });
f.waitForFinished();
qDebug() << x[0] << x[1] << x[2];

打印:

2.6 5 9.2