QMutableLinkedListIterator Class
template <typename T> class QMutableLinkedListIteratorLa clase QMutableLinkedListIterator proporciona un iterador no-const de estilo Java para QLinkedList. Más...
| Cabecera: | #include <QMutableLinkedListIterator> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat)target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
| qmake: | QT += core5compat |
Funciones públicas
| QMutableLinkedListIterator(QLinkedList<T> &list) | |
| bool | findNext(const T &value) |
| bool | findPrevious(const T &value) |
| bool | hasNext() const |
| bool | hasPrevious() const |
| void | insert(const T &value) |
| T & | next() |
| T & | peekNext() const |
| T & | peekPrevious() const |
| T & | previous() |
| void | remove() |
| void | setValue(const T &value) const |
| void | toBack() |
| void | toFront() |
| const T & | value() const |
| T & | value() |
| QMutableLinkedListIterator<T> & | operator=(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.
QMutableLinkedListIterator<T> permite iterar sobre una QLinkedList<T> y modificar la lista. Si no desea modificar la lista (o tiene una const QLinkedList), utilice en su lugar el ligeramente más rápido QLinkedListIterator<T>.
El constructor QMutableLinkedListIterator 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;...QMutableLinkedListIterator<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.

He aquí cómo iterar sobre los elementos en orden inverso:
QMutableLinkedListIterator<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.
Si desea eliminar elementos a medida que recorre la lista, utilice remove(). Si desea modificar el valor de un elemento, utilice setValue(). Si desea insertar un nuevo elemento en la lista, utilice insert().
Ejemplo:
QMutableLinkedListIterator<int> i(list); while (i.hasNext()) { int val = i.next(); if (val < 0) { i.setValue(-val); } else if (val == 0) { i.remove(); } }
El ejemplo recorre una lista, sustituyendo los números negativos por sus valores absolutos y eliminando los ceros.
Sólo un iterador mutable puede estar activo en una lista dada en cualquier momento. Además, no se deben realizar cambios directamente en la lista mientras el iterador esté activo (en lugar de a través del iterador), ya que esto podría invalidar el iterador y provocar un comportamiento indefinido.
Véase también QLinkedListIterator y QLinkedList::iterator.
Documentación de las funciones miembro
QMutableLinkedListIterator::QMutableLinkedListIterator(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 QMutableLinkedListIterator::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 QMutableLinkedListIterator::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 QMutableLinkedListIterator::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 QMutableLinkedListIterator::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().
void QMutableLinkedListIterator::insert(const T &value)
Inserta value en la posición actual del iterador. Tras la llamada, el iterador se sitúa justo después del elemento insertado.
Véase también remove() y setValue().
T &QMutableLinkedListIterator::next()
Devuelve una referencia al 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().
T &QMutableLinkedListIterator::peekNext() const
Devuelve una referencia al 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().
T &QMutableLinkedListIterator::peekPrevious() const
Devuelve una referencia al 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().
T &QMutableLinkedListIterator::previous()
Devuelve una referencia al 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 QMutableLinkedListIterator::remove()
Elimina el último elemento sobre el que se ha saltado utilizando una de las funciones de recorrido (next(), previous(), findNext(), findPrevious()).
Ejemplo:
QMutableLinkedListIterator<int> i(list); while (i.hasNext()) { int val = i.next(); if (val < -32768 || val > 32767) i.remove(); }
Véase también insert() y setValue().
void QMutableLinkedListIterator::setValue(const T &value) const
Sustituye el valor del último elemento que se saltó utilizando una de las funciones de desplazamiento por value.
Las funciones de salto son next(), previous(), findNext() y findPrevious().
Ejemplo:
QMutableLinkedListIterator<double> i(list); while (i.hasNext()) { double val = i.next(); i.setValue(std::sqrt(val)); }
Véase también value(), remove() y insert().
void QMutableLinkedListIterator::toBack()
Mueve el iterador a la parte posterior del contenedor (después del último elemento).
Véase también toFront() y previous().
void QMutableLinkedListIterator::toFront()
Mueve el iterador al principio del contenedor (antes del primer elemento).
Véase también toBack() y next().
const T &QMutableLinkedListIterator::value() const
Devuelve el valor del último elemento que se saltó utilizando una de las funciones de recorrido (next(), previous(), findNext(), findPrevious()).
Tras una llamada a next() o findNext(), value() equivale a peekPrevious(). Tras una llamada a previous() o findPrevious(), value() equivale a peekNext().
Véase también setValue().
T &QMutableLinkedListIterator::value()
Devuelve una referencia no-const al valor del último elemento sobre el que se ha saltado utilizando una de las funciones transversales.
Se trata de una función sobrecargada.
QMutableLinkedListIterator<T> &QMutableLinkedListIterator::operator=(QLinkedList<T> &list)
Hace que el iterador opere en list. El iterador se coloca al principio de la lista (antes del primer elemento).
© 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.