Sur cette page

QFutureIterator Class

template <typename T> class QFutureIterator

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

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

Remarque : toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

QFutureIterator(const QFuture<T> &future)
bool findNext(const T &value)
bool findPrevious(const T &value)
bool hasNext() const
bool hasPrevious() const
const T &next()
const T &peekNext() const
const T &peekPrevious() const
const T &previous()
void toBack()
void toFront()
QFutureIterator<T> &operator=(const QFuture<T> &future)

Description détaillée

QFutureIterator<T> est une classe de modèle dans laquelle l'T spécifie le type de résultat de l'QFuture e sur laquelle porte l'itération.

QFuture dispose à la fois d’itérateurs de style Java et d’itérateurs de style STL. Les itérateurs de style Java sont de plus haut niveau et plus faciles à utiliser que ceux de style STL ; en revanche, ils sont légèrement moins efficaces.

Une alternative à l’utilisation des itérateurs consiste à utiliser des positions d’index. Certaines fonctions membres d’ QFuture prennent un index comme premier paramètre, ce qui permet d’accéder aux résultats sans recourir aux itérateurs.

QFutureIterator<T> vous permet de parcourir une QFuture<T>. Notez qu’il n’existe pas d’itérateur modifiable pour QFuture (contrairement aux autres itérateurs de type Java).

Le constructeur de QFutureIterator prend un QFuture comme argument. Une fois construit, l'itérateur se trouve tout au début de la liste des résultats (c'est-à-dire avant le premier résultat). Voici comment parcourir tous les résultats de manière séquentielle :

QFuture<QString> future;
//...
QFutureIterator<QString> i(future);
while (i.hasNext())
    QString s = i.next();

La fonction next() renvoie le résultat suivant (en attendant qu’il soit disponible, si nécessaire) issu du « future » et fait avancer l’itérateur. Contrairement aux itérateurs de type STL, les itérateurs de style Java pointent entre les résultats 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 résultat, et renvoie le premier résultat ; le deuxième appel à ` next()` fait avancer l’itérateur jusqu’à la position située entre le deuxième et le troisième résultat, et renvoie le deuxième résultat ; et ainsi de suite.

Positions de l'itérateur entre les quatre éléments A, B, C et D, avec des flèches indiquant les positions valides

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

QFutureIterator<QString> i(future);
i.toBack();
while (i.hasPrevious())
    QString s = i.previous();

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

Plusieurs itérateurs peuvent être utilisés sur un même « future ». Si le « future » est modifié alors qu’un QFutureIterator est actif, celui-ci continuera à parcourir le « future » d’origine, en ignorant la copie modifiée.

Voir également QFuture::const_iterator et QFuture.

Documentation des fonctions membres

QFutureIterator::QFutureIterator(const QFuture<T> &future)

Crée un itérateur permettant de parcourir future. L'itérateur est placé en tête de la liste des résultats (avant le premier résultat).

Voir également operator=().

bool QFutureIterator::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 le résultat correspondant ; sinon, l'itérateur est positionné à la fin de la liste des résultats.

Voir également findPrevious().

bool QFutureIterator::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 le résultat correspondant ; sinon, l’itérateur est positionné au début de la liste des résultats.

Voir également findNext().

bool QFutureIterator::hasNext() const

Renvoie ` true ` s'il reste au moins un résultat avant l'itérateur (c'est-à-dire que l'itérateur ne se trouve pas à la fin de la liste des résultats) ; sinon, renvoie `false`.

Voir également ` hasPrevious()` et ` next()`.

bool QFutureIterator::hasPrevious() const

Renvoie « true » s'il y a au moins un résultat devant l'itérateur (c'est-à-dire si l'itérateur ne se trouve pas en tête de la liste des résultats) ; sinon, renvoie « false ».

Voir également hasNext() et previous().

const T &QFutureIterator::next()

Renvoie le résultat suivant et fait avancer l'itérateur d'une position.

L'appel de cette fonction sur un itérateur situé à la fin de la liste des résultats entraîne des résultats indéfinis.

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

const T &QFutureIterator::peekNext() const

Renvoie le résultat suivant sans déplacer l'itérateur.

L'appel de cette fonction sur un itérateur situé à la fin de la liste des résultats entraîne des résultats indéfinis.

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

const T &QFutureIterator::peekPrevious() const

Renvoie le résultat précédent sans déplacer l'itérateur.

L'appel de cette fonction sur un itérateur situé en tête de la liste des résultats entraîne des résultats indéfinis.

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

const T &QFutureIterator::previous()

Renvoie le résultat précédent et fait reculer l'itérateur d'une position.

L'appel de cette fonction sur un itérateur situé en tête de la liste des résultats entraîne des résultats indéfinis.

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

void QFutureIterator::toBack()

Déplace l'itérateur à la fin de la liste des résultats (après le dernier résultat).

Voir également toFront() et previous().

void QFutureIterator::toFront()

Déplace l'itérateur au début de la liste des résultats (avant le premier résultat).

Voir également toBack() et next().

QFutureIterator<T> &QFutureIterator::operator=(const QFuture<T> &future)

Fait en sorte que l'itérateur opère sur future. L'itérateur est placé en tête de la liste des résultats (avant le premier résultat).

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.