2015-12-01 6 views
2

У меня есть большой массив float. Я бы назвал его QtConcurrent::map() и изменил значения на месте.QtConcurrent map() on in place array

Могу ли я сделать это, не делая копию массива? Кажется map() принимает параметр QVector как параметр, и я не могу найти среднее значение для инициализации QVector из массива без копирования.

ответ

0

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 

 Смежные вопросы

  • Нет связанных вопросов^_^