QListIterator Class
template <typename T> class QListIteratorLa classe QListIterator fournit un itérateur constant de style Java pour QList et QQueue. Plus...
| En-tête : | #include <QListIterator> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
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 possède à la fois des itérateurs de style Java et des itérateurs de style STL. Les itérateurs de style STL sont plus efficaces et doivent être préférés.
Une alternative à l'utilisation d'itérateurs est l'utilisation de 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 utiliser d'itérateurs.
QListIterator<T> vous permet d'itérer sur un QList<T>, un QQueue<T> ou un 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 adresse QList comme argument. Après la construction, l'itérateur est placé au tout 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 style STL, les itérateurs de style Java pointent entre les éléments plutôt que directement sur les éléments. Le premier appel à next() fait avancer l'itérateur à 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 à 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 itérer sur 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.
Plusieurs itérateurs peuvent être utilisés sur la même liste. Si la liste est modifiée alors qu'un QListIterator est actif, le QListIterator continuera à itérer sur la liste originale, en ignorant la copie modifiée.
Voir également QMutableListIterator et QList::const_iterator.
Documentation des fonctions membres
QListIterator::QListIterator(const QList<T> &list)
Construit un itérateur pour parcourir list. L'itérateur est placé au début 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. Renvoie true si value est trouvé, sinon 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é à l'arrière du conteneur.
Voir également findPrevious().
bool QListIterator::findPrevious(const T &value)
Recherche value à partir de la position actuelle de l'itérateur 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é à l'avant du conteneur.
Voir également findNext().
bool QListIterator::hasNext() const
Renvoie true s'il y a au moins un élément avant l'itérateur, c'est-à-dire que l'itérateur n' est pas à l'arrière du conteneur ; sinon, renvoie false.
Voir aussi hasPrevious() et next().
bool QListIterator::hasPrevious() const
Renvoie true s'il y a au moins un élément derrière l'itérateur, c'est-à-dire que l'itérateur n' est pas à l'avant du conteneur ; sinon, renvoie false.
Voir aussi 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 à un itérateur situé à l'arrière du conteneur entraîne des résultats indéfinis.
Voir aussi 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 à un itérateur situé à l'arrière du conteneur conduit à des résultats indéfinis.
Voir aussi 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 à un itérateur situé à l'avant du conteneur conduit à des résultats indéfinis.
Voir aussi 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 à un itérateur situé à l'avant du conteneur conduit à des résultats indéfinis.
Voir aussi hasPrevious(), peekPrevious() et next().
void QListIterator::toBack()
Déplace l'itérateur à l'arrière du conteneur (après le dernier élément).
Voir aussi toFront() et previous().
void QListIterator::toFront()
Déplace l'itérateur à l'avant du conteneur (avant le premier élément).
Voir aussi toBack() et next().
QListIterator<T> &QListIterator::operator=(const QList<T> &list)
Permet à l'itérateur d'opérer sur list. L'itérateur est placé en tête de 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.