Sur cette page

QMutableSetIterator Class

template <typename T> class QMutableSetIterator

La classe `QMutableSetIterator` fournit un itérateur non constant de type Java pour ` QSet`. En savoir plus...

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

Fonctions publiques

QMutableSetIterator(QSet<T> &set)
bool findNext(const T &value)
bool hasNext() const
const T &next()
const T &peekNext() const
void remove()
void toBack()
void toFront()
const T &value() const
QMutableSetIterator<T> &operator=(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 l’ensemble.

QMutableSetIterator<T> vous permet de parcourir un QSet<T> et de supprimer des éléments de l'ensemble au fur et à mesure du parcours. Si vous ne souhaitez pas modifier l'ensemble (ou si vous disposez d'un QSet de type const), utilisez plutôt l'QSetIterator<T>, légèrement plus rapide.

Le constructeur de QMutableSetIterator prend un QSet en 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<float> set;
//...
QMutableSetIterator<float> i(set);
while (i.hasNext())
    float 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 supprimer des éléments au fur et à mesure que vous parcourez l’ensemble, utilisez la méthode ` remove()`.

Un seul itérateur modifiable peut être actif sur un ensemble donné à un moment donné. De plus, aucune modification ne doit être effectuée directement sur l’ensemble tant que l’itérateur est actif (par opposition à une modification effectuée via l’itérateur), car cela pourrait invalider l’itérateur et entraîner un comportement indéfini.

Voir également QSetIterator et QSet::iterator.

Documentation des fonctions membres

QMutableSetIterator::QMutableSetIterator(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 QMutableSetIterator::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.

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

const T &QMutableSetIterator::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() et peekNext().

const T &QMutableSetIterator::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 QMutableSetIterator::remove()

Supprime le dernier élément qui a été sauté à l'aide de l'une des fonctions de parcours (next(), findNext()).

Exemple :

QMutableSetIterator<int> i(set);
while (i.hasNext()) {
    int val = i.next();
    if (val < -32768 || val > 32767)
        i.remove();
}

Voir également value().

void QMutableSetIterator::toBack()

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

Voir aussi toFront().

void QMutableSetIterator::toFront()

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

Voir également toBack() et next().

const T &QMutableSetIterator::value() const

Renvoie la valeur du dernier élément qui a été ignoré à l'aide de la fonction ` next()` ou ` findNext()`.

QMutableSetIterator<T> &QMutableSetIterator::operator=(QSet<T> &set)

Fait en sorte que l'itérateur opère sur set. L'itérateur est placé en tête 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.