Auf dieser Seite

QFutureIterator Class

template <typename T> class QFutureIterator

Die Klasse „QFutureIterator“ stellt einen „const“-Iterator im Java-Stil für „ QFuture “ bereit. Mehr...

Header: #include <QFutureIterator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

Öffentliche Funktionen

QFutureIterator(const QFuture<T> &future)
bool findNext(const T &value)
bool findPrevious(const T &value)
bool hasNext() const
bool hasPrevious() const
const T &next()
const T &peekNext() const
const T &peekPrevious() const
const T &previous()
void toBack()
void toFront()
QFutureIterator<T> &operator=(const QFuture<T> &future)

Ausführliche Beschreibung

QFutureIterator<T> ist eine Template-Klasse, bei der „ T “ den Ergebnistyp des „ QFuture “ angibt, über den iteriert wird.

QFuture verfügt sowohl über Iteratoren im Java-Stil als auch über Iteratoren im STL-Stil. Die Iteratoren im Java-Stil sind abstrakter und einfacher zu verwenden als die Iteratoren im STL-Stil; andererseits sind sie etwas weniger effizient.

Eine Alternative zur Verwendung von Iteratoren ist die Verwendung von Indexpositionen. Einige Memberfunktionen von ` QFuture ` nehmen einen Index als ersten Parameter entgegen, wodurch der Zugriff auf Ergebnisse ohne Verwendung von Iteratoren möglich ist.

Mit `QFutureIterator<T>` können Sie einen ` QFuture<T>` durchlaufen. Beachten Sie, dass es für ` QFuture ` keinen veränderbaren Iterator gibt (im Gegensatz zu den anderen Iteratoren im Java-Stil).

Der Konstruktor von `QFutureIterator` nimmt ein ` QFuture ` als Argument entgegen. Nach der Konstruktion befindet sich der Iterator ganz am Anfang der Ergebnisliste (d. h. vor dem ersten Ergebnis). So durchlaufen Sie alle Ergebnisse nacheinander:

QFuture<QString> future;
//...
QFutureIterator<QString> i(future);
while (i.hasNext())
    QString s = i.next();

Die Funktion ` next()` gibt das nächste Ergebnis aus dem Future zurück (und wartet gegebenenfalls, bis es verfügbar ist) und verschiebt den Iterator um eine Position weiter. Im Gegensatz zu Iteratoren im STL-Stil zeigen Iteratoren im Java-Stil nicht direkt auf Ergebnisse, sondern zwischen ihnen. Der erste Aufruf von ` next()` verschiebt den Iterator an die Position zwischen dem ersten und dem zweiten Ergebnis und gibt das erste Ergebnis zurück; der zweite Aufruf von ` next()` verschiebt den Iterator an die Position zwischen dem zweiten und dem dritten Ergebnis und gibt das zweite Ergebnis zurück; und so weiter.

Iterator-Positionen zwischen den vier Elementen A, B, C, D mit Pfeilen, die auf gültige Positionen zeigen

So durchlaufen Sie die Elemente in umgekehrter Reihenfolge:

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

Wenn Sie alle Vorkommen eines bestimmten Werts finden möchten, verwenden Sie ` findNext()` oder ` findPrevious()` in einer Schleife.

Für denselben Future können mehrere Iteratoren verwendet werden. Wird der Future geändert, während ein `QFutureIterator` aktiv ist, setzt der `QFutureIterator` die Iteration über den ursprünglichen Future fort und ignoriert die geänderte Kopie.

Siehe auch „ QFuture::const_iterator “ und „ QFuture “.

Dokumentation der Mitgliedsfunktionen

QFutureIterator::QFutureIterator(const QFuture<T> &future)

Erstellt einen Iterator zum Durchlaufen von future. Der Iterator wird so gesetzt, dass er sich am Anfang der Ergebnisliste befindet (vor dem ersten Ergebnis).

Siehe auch operator=().

bool QFutureIterator::findNext(const T &value)

Sucht nach „ value “ ausgehend von der aktuellen Iteratorposition in Vorwärtsrichtung. Gibt „ true “ zurück, wenn „ value “ gefunden wird; andernfalls wird „ false “ zurückgegeben.

Wurde nach dem Aufruf „ value “ gefunden, wird der Iterator direkt hinter dem übereinstimmenden Ergebnis positioniert; andernfalls wird der Iterator am Ende der Ergebnisliste positioniert.

Siehe auch findPrevious().

bool QFutureIterator::findPrevious(const T &value)

Sucht nach „ value “ ausgehend von der aktuellen Iteratorposition rückwärts. Gibt „ true “ zurück, wenn „ value “ gefunden wird; andernfalls wird „ false “ zurückgegeben.

Wurde nach dem Aufruf „ value “ gefunden, wird der Iterator direkt vor dem übereinstimmenden Ergebnis positioniert; andernfalls wird der Iterator an den Anfang der Ergebnisliste positioniert.

Siehe auch findNext().

bool QFutureIterator::hasNext() const

Gibt „ true “ zurück, wenn sich mindestens ein Ergebnis vor dem Iterator befindet, d. h., der Iterator befindet sich nicht am Ende der Ergebnisliste; andernfalls wird „false“ zurückgegeben.

Siehe auch „ hasPrevious()“ und „ next()“.

bool QFutureIterator::hasPrevious() const

Gibt „ true “ zurück, wenn sich mindestens ein Ergebnis vor dem Iterator befindet, d. h., der Iterator befindet sich nicht am Anfang der Ergebnisliste; andernfalls wird „false“ zurückgegeben.

Siehe auch ` hasNext()` und ` previous()`.

const T &QFutureIterator::next()

Gibt das nächste Ergebnis zurück und verschiebt den Iterator um eine Position weiter.

Der Aufruf dieser Funktion für einen Iterator, der sich am Ende der Ergebnisliste befindet, führt zu undefinierten Ergebnissen.

Siehe auch hasNext(), peekNext() und previous().

const T &QFutureIterator::peekNext() const

Gibt das nächste Ergebnis zurück, ohne den Iterator zu verschieben.

Der Aufruf dieser Funktion für einen Iterator, der sich am Ende der Ergebnisliste befindet, führt zu undefinierten Ergebnissen.

Siehe auch hasNext(), next() und peekPrevious().

const T &QFutureIterator::peekPrevious() const

Gibt das vorherige Ergebnis zurück, ohne den Iterator zu verschieben.

Der Aufruf dieser Funktion für einen Iterator, der sich am Anfang der Ergebnisliste befindet, führt zu undefinierten Ergebnissen.

Siehe auch hasPrevious(), previous() und peekNext().

const T &QFutureIterator::previous()

Gibt das vorherige Ergebnis zurück und verschiebt den Iterator um eine Position zurück.

Der Aufruf dieser Funktion für einen Iterator, der sich am Anfang der Ergebnisliste befindet, führt zu undefinierten Ergebnissen.

Siehe auch hasPrevious(), peekPrevious() und next().

void QFutureIterator::toBack()

Verschiebt den Iterator an das Ende der Ergebnisliste (hinter das letzte Ergebnis).

Siehe auch „ toFront()“ und „ previous()“.

void QFutureIterator::toFront()

Verschiebt den Iterator an den Anfang der Ergebnisliste (vor das erste Ergebnis).

Siehe auch „ toBack()“ und „ next()“.

QFutureIterator<T> &QFutureIterator::operator=(const QFuture<T> &future)

Stellt sicher, dass der Iterator auf future arbeitet. Der Iterator wird so gesetzt, dass er sich am Anfang der Ergebnisliste befindet (vor dem ersten Ergebnis).

Siehe auch toFront() und toBack().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.