En esta página

QMutableMultiMapIterator Class

template <typename Key, typename T> class QMutableMultiMapIterator

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

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

Funciones públicas

QMutableMultiMapIterator(QMultiMap<Key, T> &map)
bool findNext(const T &value)
bool findPrevious(const T &value)
bool hasNext() const
bool hasPrevious() const
const Key &key() const
QMutableMultiMapIterator<Key, T>::Item next()
QMutableMultiMapIterator<Key, T>::Item peekNext() const
QMutableMultiMapIterator<Key, T>::Item peekPrevious() const
QMutableMultiMapIterator<Key, T>::Item previous()
void remove()
void setValue(const T &value)
void toBack()
void toFront()
const T &value() const
T &value()
QMutableMultiMapIterator<Key, T> &operator=(QMultiMap<Key, T> &map)

Descripción detallada

QMultiMap tiene iteradores de estilo Java e iteradores de estilo STL. Los iteradores de estilo STL son más eficientes y deberían preferirse.

QMutableMultiMapIterator<Key, T> te permite iterar sobre un QMultiMap y modificar el mapa. Si no quieres modificar el mapa (o tienes una const QMultiMap), usa el ligeramente más rápido QMultiMapIterator en su lugar.

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

QMultiMap<int, QWidget*> multimapa;//...QMutableMultiMapIterator<int, QWidget*> i(multimapa);while (i.hasNext()) { i.next();    qDebug() << i.key() << ": " << i.value();
}

La función next() devuelve el siguiente elemento del mapa y hace avanzar el iterador. Las funciones key() y value() devuelven la clave y el valor del último elemento sobre el que se ha saltado.

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() avanza el iterador a la posición entre el primer y el segundo elemento, y devuelve el primer elemento; la segunda llamada a next() avanza el iterador a la posición entre el segundo y el tercer elemento; y así sucesivamente.

Los iteradores estilo Java apuntan entre elementos

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

QMutableMultiMapIterator<int, QWidget*> i(multimapa); i.toBack();while (i.hasPrevious()) { i.previous();    qDebug() << i.key() << ": " << i.value();
}

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

QMutableMultiMapIterator<int, QWidget*> i(multimapa);while (i.findNext(widget)) {    qDebug() << "Found widget " << widget << " under key "
           << i.key(); }

Si quieres eliminar elementos a medida que iteras sobre el mapa, utiliza remove(). Si desea modificar el valor de un elemento, utilice setValue().

Ejemplo:

QMutableMultiMapIterator<QString, QString> i(multimap);
while (i.hasNext()) {
    i.next();
    if (i.key() == i.value())
        i.remove();
}

El ejemplo elimina todos los pares (clave, valor) en los que la clave y el valor son iguales.

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

Documentación de funciones miembro

QMutableMultiMapIterator::QMutableMultiMapIterator(QMultiMap<Key, T> &map)

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

Véase también operator=().

bool QMutableMultiMapIterator::findNext(const T &value)

Busca value comenzando desde la posición actual del iterador hacia adelante. Devuelve true si se encuentra un par (clave, valor) con valor 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 QMutableMultiMapIterator::findPrevious(const T &value)

Busca value empezando desde la posición actual del iterador hacia atrás. Devuelve true si se encuentra un par (clave, valor) con valor value; en caso contrario devuelve false.

Tras la llamada, si se ha encontrado 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 QMutableMultiMapIterator::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 QMutableMultiMapIterator::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 Key &QMutableMultiMapIterator::key() const

Devuelve la clave del último elemento sobre el que se ha saltado utilizando una de las funciones transversales (next(), previous(), findNext(), findPrevious()).

Tras una llamada a next() o findNext(), key() es equivalente a peekPrevious().key(). Tras una llamada a previous() o findPrevious(), key() equivale a peekNext().key().

Véase también value().

QMutableMultiMapIterator<Key, T>::Item QMutableMultiMapIterator::next()

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

Llame a key() sobre el valor devuelto para obtener la clave del elemento, y a value() para obtener el valor.

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

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

QMutableMultiMapIterator<Key, T>::Item QMutableMultiMapIterator::peekNext() const

Devuelve una referencia al siguiente elemento sin mover el iterador.

Llame a key() sobre el valor devuelto para obtener la clave del elemento, y a value() para obtener el valor.

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

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

QMutableMultiMapIterator<Key, T>::Item QMutableMultiMapIterator::peekPrevious() const

Devuelve el elemento anterior sin mover el iterador.

Llame a key() sobre el valor devuelto para obtener la clave del elemento, y a value() para obtener el valor.

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

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

QMutableMultiMapIterator<Key, T>::Item QMutableMultiMapIterator::previous()

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

Llame a key() sobre el valor devuelto para obtener la clave del elemento, y a value() para obtener el valor.

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

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

void QMutableMultiMapIterator::remove()

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

Véase también setValue().

void QMutableMultiMapIterator::setValue(const T &value)

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().

Véase también key(), value() y remove().

void QMutableMultiMapIterator::toBack()

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

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

void QMutableMultiMapIterator::toFront()

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

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

const T &QMutableMultiMapIterator::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() es equivalente a peekPrevious().value(). Tras una llamada a previous() o findPrevious(), value() equivale a peekNext().value().

Véase también key() y setValue().

T &QMutableMultiMapIterator::value()

Devuelve una referencia no-const al valor del último elemento que se ha saltado utilizando una de las funciones traversal.

QMutableMultiMapIterator<Key, T> &QMutableMultiMapIterator::operator=(QMultiMap<Key, T> &map)

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