2

我有一大堆浮点数。我想调用QtConcurrent::map()它并更改适当的值。

我可以在不复制数组的情况下做到这一点吗?它似乎map()需要一个QVectoras 参数,我找不到QVector从数组初始化 a 而不制作副本的方法。

4

1 回答 1

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
于 2016-07-07T12:01:41.560 回答