Sur cette page

QSetIterator Class

template <typename T> class QSetIterator

La classe `QSetIterator` fournit un itérateur `const` de type Java pour ` QSet`. En savoir plus...

En-tête : #include <QSetIterator>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Fonctions publiques

QSetIterator(const QSet<T> &set)
bool findNext(const T &value)
bool hasNext() const
const T &next()
const T &peekNext() const
void toBack()
void toFront()
QSetIterator<T> &operator=(const QSet<T> &set)

Description détaillée

QSet 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 le set.

QSetIterator<T> vous permet de parcourir un QSet<T>. Si vous souhaitez modifier le jeu pendant que vous le parcourez, utilisez plutôt QMutableSetIterator<T>.

Le constructeur prend un ` QSet ` comme argument. Une fois créé, l'itérateur se trouve tout au début du set (avant le premier élément). Voici comment parcourir tous les éléments de manière séquentielle :

QSet<QString> set;
//...
QSetIterator<QString> i(set);
while (i.hasNext())
    QString f = i.next();

La fonction next() renvoie l’élément suivant de l’ensemble 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.

Positions de l'itérateur entre les éléments A, B, C et D

Si vous souhaitez trouver toutes les occurrences d’une valeur particulière, utilisez ` findNext()` dans une boucle.

Plusieurs itérateurs peuvent être utilisés sur un même ensemble. Si l'ensemble est modifié alors qu'un QSetIterator est actif, celui-ci continuera à parcourir l'ensemble d'origine, en ignorant la copie modifiée.

Voir également QMutableSetIterator et QSet::const_iterator.

Documentation des fonctions membres

QSetIterator::QSetIterator(const QSet<T> &set)

Crée un itérateur permettant de parcourir set. L'itérateur est positionné au début de l'ensemble (avant le premier élément).

Voir également operator=().

bool QSetIterator::findNext(const T &value)

Recherche « value » à partir de la position actuelle de l’itérateur 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.

bool QSetIterator::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 next().

const T &QSetIterator::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 donne lieu à des résultats indéfinis.

Voir également hasNext() et peekNext().

const T &QSetIterator::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 entraîne des résultats indéfinis.

Voir également hasNext() et next().

void QSetIterator::toBack()

Déplace l'itérateur à la fin du conteneur (après le dernier élément).

Voir aussi toFront().

void QSetIterator::toFront()

Déplace l'itérateur au début du conteneur (avant le premier élément).

Voir également toBack() et next().

QSetIterator<T> &QSetIterator::operator=(const QSet<T> &set)

Fait en sorte que l'itérateur opère sur set. L'itérateur est placé au début de l'ensemble (avant le premier élément).

Voir également ` toFront()` et ` 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.