QListIterator Class
template <typename T> class QListIteratorLa classe `QListIterator` fournit un itérateur `const` de type Java pour ` QList ` et ` QQueue`. En savoir plus...
| En-tête : | #include <QListIterator> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
- Liste de tous les membres, y compris les membres hérités
- QListIterator fait partie des itérateurs de type Java dans Qt.
Fonctions publiques
| 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) |
Description détaillée
QList dispose à la fois d’itérateurs de type Java et d’itérateurs de type STL. Les itérateurs de type STL sont plus efficaces et sont à privilégier. Le paramètre de modèle T spécifie le type des éléments stockés dans la liste.
Une alternative à l'utilisation des itérateurs consiste à utiliser des positions d'index. La plupart des fonctions membres de ` QList ` prennent un index comme premier paramètre, ce qui permet d'accéder aux éléments, de les modifier et de les supprimer sans recourir aux itérateurs.
QListIterator<T> vous permet de parcourir une QList<T>, une QQueue<T> ou une QStack<T>. Si vous souhaitez modifier la liste au fur et à mesure que vous la parcourez, utilisez plutôt QMutableListIterator<T>.
Le constructeur de `QListIterator` prend une ` QList ` en argument. Une fois créé, l'itérateur se trouve tout au début de la liste (avant le premier élément). Voici comment parcourir tous les éléments de manière séquentielle :
QList<float> list;
//...
QListIterator<float> i(list);
while (i.hasNext())
float f = i.next();La fonction next() renvoie l’élément suivant de la liste et fait avancer l’itérateur. Contrairement aux itérateurs de type STL, les itérateurs de type Java pointent entre les éléments plutôt que directement vers ceux-ci. Le premier appel à ` next()` fait avancer l’itérateur jusqu’à la position située entre le premier et le deuxième élément, et renvoie le premier élément ; le deuxième appel à ` next()` fait avancer l’itérateur jusqu’à la position située entre le deuxième et le troisième élément, et renvoie le deuxième élément ; et ainsi de suite.
Voici comment parcourir les éléments dans l’ordre inverse :
QListIterator<float> i(list);
i.toBack();
while (i.hasPrevious())
float f = i.previous();Si vous souhaitez trouver toutes les occurrences d’une valeur particulière, utilisez findNext() ou findPrevious() dans une boucle.
Il est possible d’utiliser plusieurs itérateurs sur une même liste. Si la liste est modifiée alors qu’un QListIterator est actif, celui-ci continuera à parcourir la liste d’origine, en ignorant la copie modifiée.
Voir également QMutableListIterator et QList::const_iterator.
Documentation des fonctions membres
QListIterator::QListIterator(const QList<T> &list)
Crée un itérateur permettant de parcourir list. L'itérateur est placé en tête de la liste (avant le premier élément).
Voir aussi operator=().
bool QListIterator::findNext(const T &value)
Recherche « value » à partir de la position actuelle de l’itérateur et vers l’avant. Renvoie « true » si « value » est trouvé ; sinon, renvoie « false ».
Après l’appel, si value a été trouvé, l’itérateur est positionné juste après l’élément correspondant ; sinon, l’itérateur est positionné à la fin du conteneur.
Voir aussi findPrevious().
bool QListIterator::findPrevious(const T &value)
Recherche « value » en partant de la position actuelle de l'itérateur et en remontant vers l'arrière. Renvoie « true » si « value » est trouvé ; sinon, renvoie « false ».
Après l'appel, si value a été trouvé, l'itérateur est positionné juste avant l'élément correspondant ; sinon, l'itérateur est positionné au début du conteneur.
Voir également findNext().
bool QListIterator::hasNext() const
Renvoie ` true ` s'il reste au moins un élément avant l'itérateur, c'est-à-dire si l'itérateur ne se trouve pas à la fin du conteneur ; sinon, renvoie ` false`.
Voir également hasPrevious() et next().
bool QListIterator::hasPrevious() const
Renvoie ` true ` s'il reste au moins un élément derrière l'itérateur, c'est-à-dire si l'itérateur ne se trouve pas en tête du conteneur ; sinon, renvoie ` false`.
Voir également hasNext() et previous().
const T &QListIterator::next()
Renvoie l'élément suivant et fait avancer l'itérateur d'une position.
L'appel de cette fonction sur un itérateur situé à la fin du conteneur entraîne des résultats indéfinis.
Voir également hasNext(), peekNext() et previous().
const T &QListIterator::peekNext() const
Renvoie l'élément suivant sans déplacer l'itérateur.
L'appel de cette fonction sur un itérateur situé à la fin du conteneur donne lieu à des résultats indéfinis.
Voir également hasNext(), next() et peekPrevious().
const T &QListIterator::peekPrevious() const
Renvoie l'élément précédent sans déplacer l'itérateur.
L'appel de cette fonction sur un itérateur situé au début du conteneur donne lieu à des résultats indéfinis.
Voir également hasPrevious(), previous() et peekNext().
const T &QListIterator::previous()
Renvoie l'élément précédent et fait reculer l'itérateur d'une position.
L'appel de cette fonction sur un itérateur situé en début de conteneur entraîne des résultats indéfinis.
Voir également hasPrevious(), peekPrevious() et next().
void QListIterator::toBack()
Déplace l'itérateur à la fin du conteneur (après le dernier élément).
Voir également toFront() et previous().
void QListIterator::toFront()
Déplace l'itérateur au début du conteneur (avant le premier élément).
Voir également toBack() et next().
QListIterator<T> &QListIterator::operator=(const QList<T> &list)
Fait en sorte que l'itérateur opère sur list. L'itérateur est placé en tête de la liste (avant le premier élément).
© 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.