1. 程式人生 > 其它 >QT的QFutureIterator類的使用

QT的QFutureIterator類的使用

詳細說明
QFutureIterator類為QFuture提供了Java樣式的常量迭代器。

QFuture同時具有Java樣式的迭代器和STL樣式的迭代器。 Java風格的迭代器比STL風格的迭代器更高階,更易於使用。另一方面,它們的效率略低。
使用迭代器的替代方法是使用索引位置。一些QFuture成員函式將索引作為它們的第一個引數,從而可以在不使用迭代器的情況下訪問結果。
QFutureIterator 允許您迭代QFuture 。注意,QFuture沒有可變的迭代器(與其他Java樣式的迭代器不同)。
QFutureIterator建構函式將QFuture作為其引數。構造完成後,迭代器位於結果列表的最開始(即第一個結果之前)。以下是順序遍歷所有結果的方法:

QFuture 未來;

QFutureIterator i(未來);
而(i.hasNext())
qDebug()<< i.next();

next()函式從將來返回下一個結果(如有必要,等待下一個結果可用)並推進迭代器。與STL樣式的迭代器不同,Java樣式的迭代器在結果之間指向而不是直接指向結果。第一個對next()的呼叫使迭代器前進到第一個和第二個結果之間的位置,並返回第一個結果;第二次對next()的呼叫使迭代器前進到第二個和第三個結果之間的位置,並返回第二個結果;等等。
在這裡插入圖片描述

以下是按相反順序迭代元素的方法:

  QFutureIterator<QString>
i(future); i.toBack(); while (i.hasPrevious()) qDebug() << i.previous();

如果要查詢所有出現的特定值,請在迴圈中使用findNext()或findPrevious()。
可以在同一將來使用多個迭代器。 如果在QFutureIterator處於活動狀態時修改了future,則QFutureIterator將繼續在原始Future上進行迭代,而忽略修改後的副本。