QFutureIterator Class
template <typename T> class QFutureIteratorLa clase QFutureIterator proporciona un iterador const al estilo Java para QFuture. Más...
| Cabecera: | #include <QFutureIterator> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
Nota: Todas las funciones de esta clase son reentrantes.
Funciones Públicas
| 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) |
Descripción detallada
QFuture tiene tanto iteradores estilo Java como iteradores estilo STL. Los iteradores estilo Java son de más alto nivel y más fáciles de usar que los iteradores estilo STL; por otro lado, son ligeramente menos eficientes.
Una alternativa al uso de iteradores es el uso de posiciones índice. Algunas funciones miembro de QFuture toman un índice como primer parámetro, haciendo posible acceder a los resultados sin utilizar iteradores.
QFutureIterator<T> permite iterar sobre un QFuture<T>. Nótese que no existe un iterador mutable para QFuture (a diferencia de los otros iteradores estilo Java).
El constructor QFutureIterator toma un QFuture como argumento. Tras la construcción, el iterador se sitúa al principio de la lista de resultados (es decir, antes del primer resultado). A continuación se explica cómo iterar sobre todos los resultados secuencialmente:
QFuture<QString> future; //... QFutureIterator<QString> i(future); while (i.hasNext()) QString s = i.next();
La función next() devuelve el siguiente resultado (esperando a que esté disponible, si es necesario) del futuro y hace avanzar el iterador. A diferencia de los iteradores de estilo STL, los iteradores de estilo Java apuntan entre resultados en lugar de directamente a los resultados. La primera llamada a next() hace avanzar el iterador hasta la posición entre el primer y el segundo resultado, y devuelve el primer resultado; la segunda llamada a next() hace avanzar el iterador hasta la posición entre el segundo y el tercer resultado, y devuelve el segundo resultado; y así sucesivamente.

He aquí cómo iterar sobre los elementos en orden inverso:
QFutureIterator<QString> i(future); i.toBack(); while (i.hasPrevious()) QString s = i.previous();
Si desea encontrar todas las apariciones de un valor en particular, utilice findNext() o findPrevious() en un bucle.
Se pueden utilizar varios iteradores sobre el mismo futuro. Si el futuro se modifica mientras un QFutureIterator está activo, el QFutureIterator continuará iterando sobre el futuro original, ignorando la copia modificada.
Ver también QFuture::const_iterator y QFuture.
Documentación de las funciones miembro
QFutureIterator::QFutureIterator(const QFuture<T> &future)
Construye un iterador para recorrer future. El iterador se coloca al principio de la lista de resultados (antes del primer resultado).
Véase también operator=().
bool QFutureIterator::findNext(const T &value)
Busca value comenzando desde la posición actual del iterador hacia adelante. Devuelve true si se encuentra value; en caso contrario devuelve false.
Después de la llamada, si se encontró value, el iterador se posiciona justo después del resultado coincidente; en caso contrario, el iterador se posiciona al final de la lista de resultados.
Véase también findPrevious().
bool QFutureIterator::findPrevious(const T &value)
Busca value comenzando desde la posición actual del iterador hacia atrás. Devuelve true si se encuentra value; en caso contrario devuelve false.
Después de la llamada, si se encontró value, el iterador se posiciona justo antes del resultado coincidente; en caso contrario, el iterador se posiciona al principio de la lista de resultados.
Véase también findNext().
bool QFutureIterator::hasNext() const
Devuelve true si hay al menos un resultado por delante del iterador, es decir, el iterador no está al final de la lista de resultados; en caso contrario devuelve false.
Véase también hasPrevious() y next().
bool QFutureIterator::hasPrevious() const
Devuelve true si hay al menos un resultado por delante del iterador, por ejemplo, el iterador no está al principio de la lista de resultados; en caso contrario devuelve false.
Véase también hasNext() y previous().
const T &QFutureIterator::next()
Devuelve el siguiente resultado y avanza el iterador una posición.
Llamar a esta función en un iterador situado al final de la lista de resultados conduce a resultados indefinidos.
Véase también hasNext(), peekNext() y previous().
const T &QFutureIterator::peekNext() const
Devuelve el siguiente resultado sin mover el iterador.
Llamar a esta función en un iterador situado al final de la lista de resultados conduce a resultados indefinidos.
Véase también hasNext(), next() y peekPrevious().
const T &QFutureIterator::peekPrevious() const
Devuelve el resultado anterior sin mover el iterador.
Llamar a esta función sobre un iterador situado al principio de la lista de resultados conduce a resultados indefinidos.
Véase también hasPrevious(), previous() y peekNext().
const T &QFutureIterator::previous()
Devuelve el resultado anterior y desplaza el iterador una posición hacia atrás.
Llamar a esta función en un iterador situado al principio de la lista de resultados conduce a resultados indefinidos.
Véase también hasPrevious(), peekPrevious() y next().
void QFutureIterator::toBack()
Mueve el iterador al final de la lista de resultados (después del último resultado).
Véase también toFront() y previous().
void QFutureIterator::toFront()
Mueve el iterador al principio de la lista de resultados (antes del primer resultado).
Véase también toBack() y next().
QFutureIterator<T> &QFutureIterator::operator=(const QFuture<T> &future)
Hace que el iterador opere en future. El iterador se coloca al principio de la lista de resultados (antes del primer resultado).
© 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.