Sur cette page

QMutableLinkedListIterator Class

template <typename T> class QMutableLinkedListIterator

La classe `QMutableLinkedListIterator` fournit un itérateur non constant, de type Java, pour ` QLinkedList`. En savoir plus...

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

Fonctions publiques

QMutableLinkedListIterator(QLinkedList<T> &list)
bool findNext(const T &value)
bool findPrevious(const T &value)
bool hasNext() const
bool hasPrevious() const
void insert(const T &value)
T &next()
T &peekNext() const
T &peekPrevious() const
T &previous()
void remove()
void setValue(const T &value) const
void toBack()
void toFront()
const T &value() const
T &value()
QMutableLinkedListIterator<T> &operator=(QLinkedList<T> &list)

Description détaillée

QLinkedList dispose à la fois d'itérateurs de type Java et d'itérateurs de type STL. Les itérateurs de type Java sont plus abstraits et plus faciles à utiliser que ceux de type STL ; en revanche, ils sont légèrement moins performants.

QMutableLinkedListIterator<T> vous permet de parcourir une liste QLinkedList<T> et de la modifier, où T est le type des éléments. Si vous ne souhaitez pas modifier la liste (ou si vous disposez d’une liste de type const QLinkedList), utilisez plutôt l’ QLinkedListIterator<T>, légèrement plus rapide.

Le constructeur de `QMutableLinkedListIterator` prend un ` QLinkedList ` en argument. Une fois construit, 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 :

QLinkedList<float> list;
...
QMutableLinkedListIterator<float> i(list);
while (i.hasNext())
    qDebug() << 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.

Exemple d'utilisation d'un itérateur de type Java dans Qt

Voici comment parcourir les éléments dans l'ordre inverse :

QMutableLinkedListIterator<float> i(list);
i.toBack();
while (i.hasPrevious())
    qDebug() << i.previous();

Si vous souhaitez rechercher toutes les occurrences d'une valeur donnée, utilisez la méthode ` findNext()` ou ` findPrevious()` dans une boucle.

Si vous souhaitez supprimer des éléments au fur et à mesure que vous parcourez la liste, utilisez remove(). Si vous souhaitez modifier la valeur d'un élément, utilisez setValue(). Si vous souhaitez insérer un nouvel élément dans la liste, utilisez insert().

Exemple :

QMutableLinkedListIterator<int> i(list);
while (i.hasNext()) {
    int val = i.next();
    if (val < 0) {
        i.setValue(-val);
    } else if (val == 0) {
        i.remove();
    }
}

L'exemple parcourt une liste, en remplaçant les nombres négatifs par leurs valeurs absolues et en supprimant les zéros.

Un seul itérateur modifiable peut être actif sur une liste donnée à un moment donné. De plus, aucune modification ne doit être effectuée directement sur la liste 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 QLinkedListIterator et QLinkedList::iterator.

Documentation sur les fonctions membres

QMutableLinkedListIterator::QMutableLinkedListIterator(QLinkedList<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 QMutableLinkedListIterator::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.

Voir aussi findPrevious().

bool QMutableLinkedListIterator::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 aussi findNext().

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

void QMutableLinkedListIterator::insert(const T &value)

Insère value à la position actuelle de l'itérateur. Après l'appel, l'itérateur se trouve juste après l'élément inséré.

Voir également ` remove()` et ` setValue()`.

T &QMutableLinkedListIterator::next()

Renvoie une référence à 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().

T &QMutableLinkedListIterator::peekNext() const

Renvoie une référence à l'élément suivant, sans déplacer l'itérateur.

L'appel de cette fonction sur un itérateur situé à la fin du conteneur conduit à des résultats indéfinis.

Voir également hasNext(), next() et peekPrevious().

T &QMutableLinkedListIterator::peekPrevious() const

Renvoie une référence à 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 entraîne des résultats indéfinis.

Voir également hasPrevious(), previous() et peekNext().

T &QMutableLinkedListIterator::previous()

Renvoie une référence à 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 du conteneur donne lieu à des résultats indéfinis.

Voir également hasPrevious(), peekPrevious() et next().

void QMutableLinkedListIterator::remove()

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

Exemple :

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

Voir également insert() et setValue().

void QMutableLinkedListIterator::setValue(const T &value) const

Remplace la valeur du dernier élément qui a été sauté à l'aide de l'une des fonctions de parcours par value.

Les fonctions de parcours sont next(), previous(), findNext() et findPrevious().

Exemple :

QMutableLinkedListIterator<double> i(list);
while (i.hasNext()) {
    double val = i.next();
    i.setValue(std::sqrt(val));
}

Voir également value(), remove() et insert().

void QMutableLinkedListIterator::toBack()

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

Voir également toFront() et previous().

void QMutableLinkedListIterator::toFront()

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

Voir également toBack() et next().

const T &QMutableLinkedListIterator::value() const

Renvoie la valeur du dernier élément qui a été sauti lors de l'utilisation de l'une des fonctions de parcours (next(), previous(), findNext(), findPrevious()).

Après un appel à next() ou findNext(), la fonction value() équivaut à peekPrevious(). Après un appel à previous() ou findPrevious(), la fonction value() équivaut à peekNext().

Voir également setValue().

T &QMutableLinkedListIterator::value()

Renvoie une référence non constante à la valeur du dernier élément qui a été sauti à l'aide de l'une des fonctions de parcours.

Il s'agit d'une fonction surchargée.

QMutableLinkedListIterator<T> &QMutableLinkedListIterator::operator=(QLinkedList<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).

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.