QListIterator Class
template <typename T> class QListIteratorDie Klasse „QListIterator“ stellt einen „const“-Iterator im Java-Stil für „ QList “ und „ QQueue “ bereit. Mehr...
| Header: | #include <QListIterator> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QListIterator ist Teil der Iteratoren im Java-Stil in Qt.
Öffentliche Funktionen
| QListIterator(const QList<T> &list) | |
| 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() |
| QListIterator<T> & | operator=(const QList<T> &list) |
Ausführliche Beschreibung
QList verfügt sowohl über Iteratoren im Java-Stil als auch über Iteratoren im STL-Stil. Iteratoren im STL-Stil sind effizienter und sollten bevorzugt werden. Der Template-Parameter ` T ` gibt den Typ der in der Liste gespeicherten Elemente an.
Eine Alternative zur Verwendung von Iteratoren ist die Verwendung von Indexpositionen. Die meisten Memberfunktionen von ` QList ` nehmen einen Index als ersten Parameter entgegen, wodurch es möglich ist, auf Elemente zuzugreifen, sie zu ändern und zu entfernen, ohne Iteratoren zu verwenden.
Mit `QListIterator<T>` können Sie eine ` QList<T>`, eine ` QQueue<T>` oder eine ` QStack<T>` durchlaufen. Wenn Sie die Liste während des Durchlaufs ändern möchten, verwenden Sie stattdessen ` QMutableListIterator<T>`.
Der Konstruktor von `QListIterator` nimmt eine ` QList ` als Argument entgegen. Nach der Initialisierung befindet sich der Iterator ganz am Anfang der Liste (vor dem ersten Element). So durchlaufen Sie alle Elemente nacheinander:
QList<float> list;
//...
QListIterator<float> i(list);
while (i.hasNext())
float f = i.next();Die Funktion ` next()` gibt das nächste Element der Liste zurück und schiebt den Iterator weiter. Im Gegensatz zu Iteratoren im STL-Stil zeigen Iteratoren im Java-Stil nicht direkt auf Elemente, sondern zwischen ihnen. Der erste Aufruf von ` next()` verschiebt den Iterator an die Position zwischen dem ersten und dem zweiten Element und gibt das erste Element zurück; der zweite Aufruf von ` next()` verschiebt den Iterator an die Position zwischen dem zweiten und dem dritten Element und gibt das zweite Element zurück; und so weiter.
So durchlaufen Sie die Elemente in umgekehrter Reihenfolge:
QListIterator<float> i(list);
i.toBack();
while (i.hasPrevious())
float f = i.previous();Wenn Sie alle Vorkommen eines bestimmten Werts finden möchten, verwenden Sie „ findNext()“ oder „ findPrevious()“ in einer Schleife.
Es können mehrere Iteratoren für dieselbe Liste verwendet werden. Wird die Liste geändert, während ein `QListIterator` aktiv ist, setzt der `QListIterator` die Iteration über die ursprüngliche Liste fort und ignoriert die geänderte Kopie.
Siehe auch „ QMutableListIterator “ und „ QList::const_iterator “.
Dokumentation zu den Mitgliedsfunktionen
QListIterator::QListIterator(const QList<T> &list)
Erstellt einen Iterator zum Durchlaufen von list. Der Iterator wird so gesetzt, dass er sich am Anfang der Liste befindet (vor dem ersten Element).
Siehe auch operator=().
bool QListIterator::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 entsprechenden Element positioniert; andernfalls wird der Iterator am Ende des Containers positioniert.
Siehe auch findPrevious().
bool QListIterator::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 entsprechenden Element positioniert; andernfalls wird der Iterator an den Anfang des Containers gesetzt.
Siehe auch „ findNext()“.
bool QListIterator::hasNext() const
Gibt „ true “ zurück, wenn sich mindestens ein Element vor dem Iterator befindet, d. h. der Iterator befindet sich nicht am Ende des Containers; andernfalls wird „ false “ zurückgegeben.
Siehe auch ` hasPrevious()` und ` next()`.
bool QListIterator::hasPrevious() const
Gibt „ true “ zurück, wenn sich mindestens ein Element hinter dem Iterator befindet, d. h. der Iterator befindet sich nicht am Anfang des Containers; andernfalls wird „ false “ zurückgegeben.
Siehe auch ` hasNext()` und ` previous()`.
const T &QListIterator::next()
Gibt das nächste Element zurück und verschiebt den Iterator um eine Position weiter.
Der Aufruf dieser Funktion für einen Iterator, der sich am Ende des Containers befindet, führt zu undefinierten Ergebnissen.
Siehe auch hasNext(), peekNext() und previous().
const T &QListIterator::peekNext() const
Gibt das nächste Element zurück, ohne den Iterator zu verschieben.
Der Aufruf dieser Funktion für einen Iterator, der sich am Ende des Containers befindet, führt zu undefinierten Ergebnissen.
Siehe auch hasNext(), next() und peekPrevious().
const T &QListIterator::peekPrevious() const
Gibt das vorherige Element zurück, ohne den Iterator zu verschieben.
Der Aufruf dieser Funktion für einen Iterator, der sich am Anfang des Containers befindet, führt zu undefinierten Ergebnissen.
Siehe auch hasPrevious(), previous() und peekNext().
const T &QListIterator::previous()
Gibt das vorherige Element zurück und verschiebt den Iterator um eine Position zurück.
Der Aufruf dieser Funktion für einen Iterator, der sich am Anfang des Containers befindet, führt zu undefinierten Ergebnissen.
Siehe auch hasPrevious(), peekPrevious() und next().
void QListIterator::toBack()
Verschiebt den Iterator an das Ende des Containers (hinter das letzte Element).
Siehe auch „ toFront()“ und „ previous()“.
void QListIterator::toFront()
Verschiebt den Iterator an den Anfang des Containers (vor das erste Element).
Siehe auch toBack() und next().
QListIterator<T> &QListIterator::operator=(const QList<T> &list)
Stellt sicher, dass der Iterator auf list arbeitet. Der Iterator wird so gesetzt, dass er sich am Anfang der Liste befindet (vor dem ersten Element).
© 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.