En esta página

QLinkedListIterator Class

template <typename T> class QLinkedListIterator

La clase QLinkedListIterator proporciona un iterador const al estilo Java para QLinkedList. Más...

Cabecera: #include <QLinkedListIterator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat

Funciones públicas

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

Descripción detallada

QLinkedList tiene tanto iteradores estilo Java como iteradores estilo STL. Los iteradores de estilo Java son de más alto nivel y más fáciles de usar que los iteradores de estilo STL; por otro lado, son ligeramente menos eficientes.

QLinkedListIterator<T> permite iterar sobre una lista QLinkedList<T>. Si desea modificar la lista mientras itera sobre ella, utilice QMutableLinkedListIterator<T> en su lugar.

El constructor QLinkedListIterator toma un QLinkedList como argumento. Tras la construcción, el iterador se sitúa al principio de la lista (antes del primer elemento). He aquí cómo iterar sobre todos los elementos secuencialmente:

QLinkedList<float> lista;...QLinkedListIterator<float> i(lista);while (i.hasNext())    qDebug() << 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.

Ilustración del uso de iteradores al estilo Java en Qt

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

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

Si desea encontrar todas las apariciones de un valor determinado, utilice findNext() o findPrevious() en un bucle.

Se pueden utilizar múltiples iteradores en la misma lista. Si la lista se modifica mientras un QLinkedListIterator está activo, el QLinkedListIterator continuará iterando sobre la lista original, ignorando la copia modificada.

Ver también QMutableLinkedListIterator y QLinkedList::const_iterator.

Documentación de la Función Miembro

QLinkedListIterator::QLinkedListIterator(const QLinkedList<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 QLinkedListIterator::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 QLinkedListIterator::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 QLinkedListIterator::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 QLinkedListIterator::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 &QLinkedListIterator::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 &QLinkedListIterator::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 &QLinkedListIterator::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 &QLinkedListIterator::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 QLinkedListIterator::toBack()

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

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

void QLinkedListIterator::toFront()

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

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

QLinkedListIterator<T> &QLinkedListIterator::operator=(const QLinkedList<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.