QFutureIterator Class
template <typename T> class QFutureIteratorDie Klasse QFutureIterator bietet einen Konst-Iterator im Java-Stil für QFuture. Mehr...
Kopfzeile: | #include <QFutureIterator> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Hinweis: Alle Funktionen in 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) |
Detaillierte Beschreibung
QFuture hat sowohl Iteratoren im Java-Stil als auch Iteratoren im STL-Stil. Die Iteratoren im Java-Stil sind übersichtlicher und einfacher zu verwenden als die Iteratoren im STL-Stil; auf der anderen Seite sind sie etwas weniger effizient.
Eine Alternative zur Verwendung von Iteratoren ist die Verwendung von Indexpositionen. Einige Funktionen von QFuture nehmen einen Index als ersten Parameter an, so dass es möglich ist, auf Ergebnisse zuzugreifen, ohne Iteratoren zu verwenden.
QFutureIterator<T> erlaubt es, über ein QFuture<T> zu iterieren. Beachten Sie, dass es für QFuture keinen veränderbaren Iterator gibt (im Gegensatz zu den anderen Iteratoren im Java-Stil).
Der QFutureIterator Konstruktor nimmt ein QFuture als Argument. Nach der Konstruktion befindet sich der Iterator ganz am Anfang der Ergebnisliste (d.h. vor dem ersten Ergebnis). Im Folgenden wird beschrieben, wie man alle Ergebnisse nacheinander durchläuft:
QFuture<QString> future; ... QFutureIterator<QString> i(future); while (i.hasNext()) QString s = i.next();
Die Funktion next() gibt das nächste Ergebnis aus der Zukunft zurück (und wartet ggf. darauf, dass es verfügbar wird) und setzt den Iterator fort. Im Gegensatz zu Iteratoren im STL-Stil zeigen Iteratoren im Java-Stil zwischen Ergebnissen und nicht direkt auf Ergebnisse. Der erste Aufruf von next() setzt den Iterator an die Position zwischen dem ersten und dem zweiten Ergebnis und gibt das erste Ergebnis zurück; der zweite Aufruf von next() setzt den Iterator an die Position zwischen dem zweiten und dem dritten Ergebnis und gibt das zweite Ergebnis zurück, und so weiter.
So können Sie in umgekehrter Reihenfolge über die Elemente iterieren:
QFutureIterator<QString> i(future); i.toBack(); while (i.hasPrevious()) QString s = i.previous();
Wenn Sie alle Vorkommen eines bestimmten Wertes finden wollen, verwenden Sie findNext() oder findPrevious() in einer Schleife.
Mehrere Iteratoren können für dieselbe Zukunft verwendet werden. Wenn die Zukunft verändert wird, während ein QFutureIterator aktiv ist, iteriert der QFutureIterator weiter über die ursprüngliche Zukunft und ignoriert die veränderte Kopie.
Siehe auch QFuture::const_iterator und QFuture.
Dokumentation der Mitgliedsfunktionen
QFutureIterator::QFutureIterator(const QFuture<T> &future)
Konstruiert einen Iterator zum Durchlaufen von future. Der Iterator wird so gesetzt, dass er am Anfang der Ergebnisliste steht (vor dem ersten Ergebnis).
Siehe auch operator=().
bool QFutureIterator::findNext(const T &value)
Sucht ab der aktuellen Iteratorposition vorwärts nach value. Gibt true
zurück, wenn value gefunden wird; andernfalls false
.
Nach dem Aufruf wird der Iterator, falls value gefunden wurde, direkt nach dem passenden Ergebnis positioniert; andernfalls wird der Iterator an das Ende der Ergebnisliste gesetzt.
Siehe auch findPrevious().
bool QFutureIterator::findPrevious(const T &value)
Sucht ab der aktuellen Iteratorposition rückwärts nach value. Gibt true
zurück, wenn value gefunden wird; andernfalls false
.
Nach dem Aufruf wird der Iterator, wenn value gefunden wurde, direkt vor dem passenden Ergebnis positioniert; andernfalls wird der Iterator an den Anfang der Ergebnisliste gesetzt.
Siehe auch findNext().
bool QFutureIterator::hasNext() const
Gibt true
zurück, wenn es mindestens ein Ergebnis vor dem Iterator gibt, d.h. der Iterator nicht am Ende der Ergebnisliste steht; 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 steht 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 rückt den Iterator um eine Position vor.
Der Aufruf dieser Funktion bei einem 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 bei einem 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 bei einem 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 bei einem 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 (nach dem letzten 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)
Lässt den Iterator auf future arbeiten. Der Iterator wird so eingestellt, dass er am Anfang der Ergebnisliste steht (vor dem ersten Ergebnis).
© 2025 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.