En esta página

QMutableSetIterator Class

template <typename T> class QMutableSetIterator

La clase QMutableSetIterator proporciona un iterador no-const de estilo Java para QSet. Más...

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

Funciones públicas

QMutableSetIterator(QSet<T> &set)
bool findNext(const T &value)
bool hasNext() const
const T &next()
const T &peekNext() const
void remove()
void toBack()
void toFront()
const T &value() const
QMutableSetIterator<T> &operator=(QSet<T> &set)

Descripción detallada

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

QMutableSetIterator<T> permite iterar sobre un QSet<T> y eliminar elementos del conjunto a medida que se itera. Si no desea modificar el conjunto (o tiene una const QSet), utilice en su lugar el ligeramente más rápido QSetIterator<T>.

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

QSet<float> set;
//...
QMutableSetIterator<float> i(set);
while (i.hasNext())
    float f = i.next();

La función next() devuelve el siguiente elemento del conjunto 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

Si desea eliminar elementos a medida que itera sobre el conjunto, utilice remove().

Sólo un iterador mutable puede estar activo en un conjunto dado en cualquier momento. Además, no se deben realizar cambios directamente en el conjunto 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 QSetIterator y QSet::iterator.

Documentación de funciones miembro

QMutableSetIterator::QMutableSetIterator(QSet<T> &set)

Construye un iterador para recorrer set. El iterador se coloca al principio del conjunto (antes del primer elemento).

Véase también operator=().

bool QMutableSetIterator::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.

bool QMutableSetIterator::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 next().

const T &QMutableSetIterator::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() y peekNext().

const T &QMutableSetIterator::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() y next().

void QMutableSetIterator::remove()

Elimina el último elemento sobre el que se ha saltado utilizando una de las funciones de recorrido (next(), findNext()).

Ejemplo:

QMutableSetIterator<int> i(set);
while (i.hasNext()) {
    int val = i.next();
    if (val < -32768 || val > 32767)
        i.remove();
}

Véase también value().

void QMutableSetIterator::toBack()

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

Véase también toFront().

void QMutableSetIterator::toFront()

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

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

const T &QMutableSetIterator::value() const

Devuelve el valor del último elemento que se saltó utilizando next() o findNext().

QMutableSetIterator<T> &QMutableSetIterator::operator=(QSet<T> &set)

Hace que el iterador opere en set. El iterador se coloca al principio del conjunto (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.