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  · 

QVectorIterator

La QVectorIterator fournit un it�rateur constant dans le style Java pour QVector et QStack. Plus d'informations...

#include <QVectorIterator>

Voir la position dans l'arbre des classes.

Description d�taill�e

La QVectorIterator fournit un it�rateur constant dans le style Java pour QVector et QStack.

QVector poss�de 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 facile � utiliser que les it�rateurs STL ; par contre, ils sont un peu moins efficaces.

Une autre possibilit� que l'utilisation des it�rateurs est d'utiliser les index. La plupart des fonctions de QVector prennent un index comme premier param�tre, rendant possibles l'acc�s, l'insertion et la suppression d'�l�ments sans utiliser d'it�rateur.

QVectorIterator<T> permet de parcourir un QVector<T> (ou un QStack<T>). Si on souhaite modifier le vecteur lors du parcours, il faut � la place utiliser QMutableVectorIterator<T>.

Le constructeur de QVectorIterator prend un QVector comme param�tre. Apr�s la construction, l'it�rateur est situ� au tout d�but du vecteur (avant le premier �l�ment). Voici comment parcourir tous les �l�ments un par un:

 QVector<float> vector;
 ...
 QVectorIterator<float> i(vector);
 while (i.hasNext())
     qDebug() << i.next();

La fonction next() retourne le prochain �l�ment du vecteur et avance l'it�rateur. Contrairement aux it�rateurs STL, les it�rateurs Java pointent entre les �l�ments plut�t que sur les �l�ments. Le premier appel � next() avance l'it�rateur � la position entre le premier et le second �l�ment et retourne le premier �l�ment ; le second appel � next() avance l'it�rateur � la position entre le deuxi�me et le troisi�me �l�ment, retournant le deuxi�me �l�ment ; et ainsi de suite.

image

Voici comment parcourir dans l'ordre invers� :

 QVectorIterator<float> i(vector);
 i.toBack();
 while (i.hasPrevious())
     qDebug() << i.previous();

Si on veut trouver toutes les occurrences d'une valeur particuli�re, on utilise findNext() ou findPrevious() dans une boucle.

Plusieurs it�rateurs peuvent �tre utilis�s sur le m�me vecteur. Si le vecteur est modifi� lorsqu'un QVectorIterator est actif, le QVectorIterator va continuer de parcourir le vecteur original, ignorant la copie modifi�e.

Voir aussi QMutableVectorIterator et QVector::const_iterator.

Fonctions membres

QVectorIterator::QVectorIterator ( const QVector<T> & vector )

Construit un it�rateur pour le parcours du vecteur vector. L'it�rateur est positionn� au d�but du vecteur (avant le premier �l�ment).

Voir aussi operator=().

bool QVectorIterator::findNext ( const T & value )

Recherche en avant la valeur value en commen�ant par la position actuelle de l'it�rateur. Retourne true si la valeur value est trouv�e ; sinon retourne false.

Apr�s l'appel, si la valeur 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 du conteneur.

Voir aussi findPrevious().

bool QVectorIterator::findPrevious ( const T & value )

Recherche en arri�re la valeur value en commen�ant par la position actuelle de l'it�rateur. Retourne true si la valeur value est trouv�e ; sinon retourne false.

Apr�s l'appel, si la valeur 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 du conteneur.

Voir aussi findNext().

bool QVectorIterator::hasNext () const

Retourne true s'il y a au moins un �l�ment devant l'it�rateur, c'est-�-dire, si l'it�rateur n'est pas � la fin du conteneur ; sinon retourne false.

Voir aussi hasPrevious() et next().

bool QVectorIterator::hasPrevious () const

Retourne true s'il y a au moins un �l�ment derri�re l'it�rateur, c'est-�-dire, si l'it�rateur n'est pas au d�but du conteneur ; sinon retourne false.

Voir aussi hasNext() et previous().

const T & QVectorIterator::next ()

Retourne le prochain �l�ment et avance l'it�rateur d'une position en avant.

L'appel � cette fonction sur un it�rateur situ� � la fin d'un conteneur provoque des r�sultats non d�finis.

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

const T & QVectorIterator::peekNext () const

Retourne le prochain �l�ment sans d�placer l'it�rateur.

L'appel � cette fonction sur un it�rateur situ� � la fin d'un conteneur provoque des r�sultats non d�finis.

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

const T & QVectorIterator::peekPrevious () const

Retourne l'�l�ment pr�c�dent sans d�placer l'it�rateur.

L'appel � cette fonction sur un it�rateur situ� au d�but d'un conteneur provoque des r�sultats non d�finis.

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

const T & QVectorIterator::previous ()

Retourne l'�l�ment pr�c�dent et d�place l'it�rateur d'une position en arri�re.

L'appel � cette fonction sur un it�rateur situ� au d�but d'un conteneur provoque des r�sultats non d�finis.

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

void QVectorIterator::toBack ()

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

Voir aussi toFront() et previous().

void QVectorIterator::toFront ()

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

Voir aussi toBack() et next().

QVectorIterator & QVectorIterator::operator= ( const QVector<T> & vector )

Associe l'it�rateur au vecteur vector. L'it�rateur est positionn� au d�but du vecteur (avant le premier �l�ment).

Voir aussi toFront() et toBack().

Remerciements

Merci � Alexandre Laurent pour la traduction ainsi qu'� Lo?c Leguay, Ilya Diallo, Jonathan Courtois, Thibaut Cuvelier et Claude Leloup pour leur 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 © 2025 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 ? Un bug ? 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 !