IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QListIterator

La classe QListIterator fournit un itérateur constant dans le style Java pour QList et QQueue. Plus d'informations...

 #include <QListIterator>

Description détaillée

La classe QListIterator fournit un itérateur constant dans le style Java pour QList et QQueue.

QList possède à la fois des itérateurs dans le style Java et des itérateurs dans le style STL. Les itérateurs dans le style Java sont de plus haut niveau et plus faciles à utiliser que les itérateurs dans le style STL ; par contre, ils sont un peu moins performants.

Il est possible d'utiliser des positions indexées à la place des itérateurs. La plupart des fonctions membres de QList prennent un index comme premier paramètre, ce qui rend possible l'accès aux éléments, leur modification et leur suppression, sans utiliser d'itérateurs.

QListIterator<T> vous permet d'itérer sur une QList<T> (ou une QQueue<T>). Si vous voulez modifier la liste pendant que vous la parcourez, utilisez QMutableListIterator<T> à la place.

Le constructeur de QListIterator prend une QList comme argument. Après la construction, l'itérateur est positionné au début de la liste, avant le premier élément. Voici comment parcourir tous les éléments séquentiellement :

 QList<float> list;
 ...
 QListIterator<float> i(list);
 while (i.hasNext())
     qDebug() << i.next();

La fonction next() renvoie le prochain élément de la liste et avance l'itérateur. Contrairement aux itérateurs dans le style STL, les itérateurs dans le style Java pointent « entre » les éléments plutôt que directement « sur » eux. Le premier appel à next() avance l'itérateur à la position entre le premier et le second élément et renvoie le premier élément ; le second appel à next() avance l'itérateur à la position entre le second et le troisième élément et renvoie le second, et ainsi de suite.

image Voici comment parcourir les éléments en ordre inverse :

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

Si vous recherchez toutes les occurrences d'une valeur particulière, utilisez findNext() ou findPrevious() dans une boucle.

Il est possible d'utiliser plusieurs itérateurs sur la même liste. Si la liste est modifiée pendant qu'un QListIterator est actif, le QListIterator va continuer de parcourir la liste originale, ignorant la copie modifiée.

Voir aussi QMutableListIterator et QList::const_iterator.

Fonctions membres

QListIterator::QListIterator ( const QList<T> & list )

Construit un itérateur pour parcourir list. L'itérateur est positionné au début de la liste (avant le premier élément).

Voir aussi operator=().

bool QListIterator::findNext ( const T & value )

Recherche value vers l'avant depuis la position courante de l'itérateur. Renvoie true si value est trouvée ; sinon renvoie false.

Après l'appel, si value a été trouvée, l'itérateur est positionné juste après l'élément correspondant ; sinon, l'itérateur est positionné à la fin de la liste.

Voir aussi findPrevious().

bool QListIterator::findPrevious ( const T & value )

Recherche value vers l'arrière depuis la position courante de l'itérateur. Renvoie true si value est trouvée ; sinon renvoie false.

Après l'appel, si value a été trouvée, l'itérateur est positionné juste avant l'élément correspondant ; sinon, l'itérateur est positionné au début de la liste.

Voir aussi findNext().

bool QListIterator::hasNext () const

Renvoie true s'il existe au moins un élément devant l'itérateur, c'est-à-dire si l'itérateur n'est pas à la fin de la liste ; sinon renvoie false.

Voir aussi hasPrevious() et next().

bool QListIterator::hasPrevious () const

Renvoie true s'il existe au moins un élément derrière l'itérateur, c'est-à-dire si l'itérateur n'est pas au début de la liste ; sinon renvoie false.

Voir aussi hasNext() et previous().

const T & QListIterator::next ()

Renvoie le prochain élément et avance l'itérateur d'une position.

L'appel de cette fonction sur un itérateur positionné à la fin de la liste produit un résultat indéfini.

Voir aussi hasNext(), peekNext() et previous().

const T & QListIterator::peekNext () const

Renvoie le prochain élément sans avancer l'itérateur.

L'appel de cette fonction sur un itérateur positionné à la fin de la liste produit un résultat indéfini.

Voir aussi hasNext(), next() et peekPrevious().

const T & QListIterator::peekPrevious () const

Renvoie l'élément précédent sans avancer l'itérateur.

L'appel de cette fonction sur un itérateur positionné au début de la liste produit un résultat indéfini.

Voir aussi hasPrevious(), previous() et peekNext().

const T & QListIterator::previous ()

Renvoie l'élément précédent et recule l'itérateur d'une position.

L'appel de cette fonction sur un itérateur positionné au début de la liste produit un résultat indéfini.

Voir aussi hasPrevious(), peekPrevious() et next().

void QListIterator::toBack ()

Positionne l'itérateur à la fin de la liste (après le dernier élément).

Voir aussi toFront() et previous().

void QListIterator::toFront ()

Positionne l'itérateur au début de la liste (avant le premier élément).

Voir aussi toBack() et next().

QListIterator & QListIterator::operator= ( const QList<T> & list )

Fait opérer l'itérateur sur list. L'itérateur est positionné au début de la liste (avant le premier élément).

Voir aussi toFront() et toBack().

Remerciements

Merci à Ilya Diallo pour la traduction, ainsi qu'à Dimitry Ernot et Claude Leloup pour la relecture !

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.7
Copyright © 2021 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur, une redirection cassée ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !