En esta página

QListIterator Class

template <typename T> class QListIterator

La clase QListIterator proporciona un iterador const al estilo Java para QList y QQueue. Más...

Cabecera: #include <QListIterator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Funciones públicas

QListIterator(const QList<T> &list)
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()
QListIterator<T> &operator=(const QList<T> &list)

Descripción detallada

QList tiene tanto iteradores estilo Java como iteradores estilo STL. Los iteradores estilo STL son más eficientes y deberían preferirse.

Una alternativa al uso de iteradores es utilizar posiciones de índice. La mayoría de las funciones miembro de QList toman un índice como primer parámetro, haciendo posible acceder, modificar y eliminar elementos sin usar iteradores.

QListIterator<T> permite iterar sobre un QList<T>, un QQueue<T> o un QStack<T>. Si desea modificar la lista a medida que itera sobre ella, utilice QMutableListIterator<T> en su lugar.

El constructor QListIterator toma un QList como argumento. Después de la construcción, el iterador se encuentra al principio de la lista (antes del primer elemento). He aquí cómo iterar sobre todos los elementos secuencialmente:

QList<float> list;
//...
QListIterator<float> i(list);
while (i.hasNext())
    float f = i.next();

La función next() devuelve el siguiente elemento de la lista y hace avanzar el iterador. A diferencia de los iteradores de estilo STL, los iteradores de estilo Java apuntan entre elementos en lugar de directamente a los elementos. La primera llamada a next() hace avanzar el iterador hasta la posición entre el primer y el segundo elemento, y devuelve el primer elemento; la segunda llamada a next() hace avanzar el iterador hasta la posición entre el segundo y el tercer elemento, y devuelve el segundo elemento; y así sucesivamente.

Los iteradores estilo Java apuntan entre elementos

He aquí cómo iterar sobre los elementos en orden inverso:

QListIterator<float> i(list);
i.toBack();
while (i.hasPrevious())
    float f = 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 la misma lista. Si la lista se modifica mientras un QListIterator está activo, el QListIterator continuará iterando sobre la lista original, ignorando la copia modificada.

Ver también QMutableListIterator y QList::const_iterator.

Documentación de Funciones Miembro

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

Construye un iterador para recorrer list. El iterador se coloca al principio de la lista (antes del primer elemento).

Véase también operator=().

bool QListIterator::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 elemento coincidente; en caso contrario, el iterador se posiciona al final del contenedor.

Véase también findPrevious().

bool QListIterator::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 elemento coincidente; en caso contrario, el iterador se posiciona al principio del contenedor.

Véase también findNext().

bool QListIterator::hasNext() const

Devuelve true si hay al menos un elemento por delante del iterador, es decir, el iterador no está al final del contenedor; en caso contrario devuelve false.

Véase también hasPrevious() y next().

bool QListIterator::hasPrevious() const

Devuelve true si hay al menos un elemento detrás del iterador, es decir, el iterador no está en la parte delantera del contenedor; en caso contrario devuelve false.

Véase también hasNext() y previous().

const T &QListIterator::next()

Devuelve el siguiente elemento y avanza el iterador una posición.

Llamar a esta función en un iterador situado en la parte posterior del contenedor conduce a resultados indefinidos.

Véase también hasNext(), peekNext() y previous().

const T &QListIterator::peekNext() const

Devuelve el siguiente elemento sin mover el iterador.

Llamar a esta función en un iterador situado en la parte posterior del contenedor conduce a resultados indefinidos.

Véase también hasNext(), next() y peekPrevious().

const T &QListIterator::peekPrevious() const

Devuelve el elemento anterior sin mover el iterador.

Llamar a esta función en un iterador situado en la parte delantera del contenedor conduce a resultados indefinidos.

Véase también hasPrevious(), previous() y peekNext().

const T &QListIterator::previous()

Devuelve el elemento anterior y desplaza el iterador una posición hacia atrás.

Llamar a esta función en un iterador situado en la parte delantera del contenedor conduce a resultados indefinidos.

Véase también hasPrevious(), peekPrevious() y next().

void QListIterator::toBack()

Mueve el iterador a la parte posterior del contenedor (después del último elemento).

Véase también toFront() y previous().

void QListIterator::toFront()

Mueve el iterador al principio del contenedor (antes del primer elemento).

Véase también toBack() y next().

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

Hace que el iterador opere en list. El iterador se coloca al principio de la lista (antes del primer elemento).

Véase también toFront() y 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.