En esta página

QMap::const_iterator Class

class QMap::const_iterator

La clase QMap::const_iterator proporciona un iterador const de estilo STL para QMap. Más...

Tipos públicos

Funciones públicas

const_iterator()
const_iterator(const QMap<Key, T>::iterator &other)
const Key &key() const
const T &value() const
const T &operator*() const
QMap<Key, T>::const_iterator &operator++()
QMap<Key, T>::const_iterator operator++(int)
QMap<Key, T>::const_iterator &operator--()
QMap<Key, T>::const_iterator operator--(int)
const T *operator->() const
bool operator!=(const QMap<Key, T>::const_iterator &lhs, const QMap<Key, T>::const_iterator &rhs)
bool operator==(const QMap<Key, T>::const_iterator &lhs, const QMap<Key, T>::const_iterator &rhs)

Descripción detallada

QMap<Key, T>::const_iterator le permite iterar sobre un QMap. Si desea modificar el QMap mientras itera sobre él, debe utilizar QMap::iterator en su lugar. Generalmente es una buena práctica usar QMap::const_iterator sobre un QMap no-const también, a menos que necesites cambiar el QMap a través del iterador. Los iteradores const son ligeramente más rápidos y pueden mejorar la legibilidad del código.

El constructor por defecto QMap::const_iterator crea un iterador no inicializado. Debes inicializarlo usando una función QMap como QMap::cbegin(), QMap::cend(), o QMap::constFind() antes de que puedas empezar a iterar. Este es un bucle típico que imprime todos los pares (clave, valor) almacenados en un mapa:

QMap<QString, int> map;
map.insert("January", 1);
map.insert("February", 2);
//...
map.insert("December", 12);

for (auto i = map.cbegin(), end = map.cend(); i != end; ++i)
    cout << qPrintable(i.key()) << ": " << i.value() << endl;

Aquí tienes un ejemplo que elimina todos los elementos cuyo valor es mayor que 10:

QMap<QString, int>::const_iterator i = map.cbegin();
while (i != map.cend()) {
    if (i.value() > 10)
        i = map.erase(i);
    else
        ++i;
}

Y aquí el mismo comportamiento con erase_if()

erase_if(map, [](const QMap<QString, int>::iterator it) { return it.value() > 10; });

A diferencia de QHash, que almacena sus elementos en un orden arbitrario, QMap almacena sus elementos ordenados por clave.

Se pueden utilizar varios iteradores en el mismo mapa. Si añades elementos al mapa, los iteradores existentes seguirán siendo válidos. Si eliminas elementos del mapa, los iteradores que apunten a los elementos eliminados se convertirán en iteradores colgantes.

Advertencia: Los iteradores sobre contenedores implícitamente compartidos no funcionan exactamente igual que los iteradores STL. Debes evitar copiar un contenedor mientras los iteradores estén activos en ese contenedor. Para más información, lee Problema de los iteradores compartidos implícitamente.

Ver también QMap::iterator, QMap::key_iterator, y QMap::const_key_value_iterator.

Documentación de tipos de miembros

[alias] const_iterator::iterator_category

Un sinónimo de std::bidirectional_iterator_tag que indica que este iterador es un iterador bidireccional.

Documentación de funciones miembro

const_iterator::const_iterator()

Construye un iterador no inicializado.

Funciones como key(), value(), y operator++() no deben ser llamadas en un iterador no inicializado. Utilice operator=() para asignarle un valor antes de utilizarlo.

Véase también QMap::constBegin() y QMap::constEnd().

const_iterator::const_iterator(const QMap<Key, T>::iterator &other)

Construye una copia de other.

const Key &const_iterator::key() const

Devuelve la clave del elemento actual.

Véase también value().

const T &const_iterator::value() const

Devuelve el valor del elemento actual.

Véase también key() y operator*().

const T &const_iterator::operator*() const

Devuelve el valor del elemento actual.

Igual que value().

Véase también key().

QMap<Key, T>::const_iterator &const_iterator::operator++()

El operador de prefijo ++ (++i) avanza el iterador al siguiente elemento del mapa y devuelve un iterador al nuevo elemento actual.

Llamar a esta función en QMap::end() conduce a resultados indefinidos.

Véase también operator--().

QMap<Key, T>::const_iterator const_iterator::operator++(int)

El operador postfijo ++ (i++) avanza el iterador al siguiente elemento del mapa y devuelve un iterador al elemento previamente actual.

Se trata de una función sobrecargada.

QMap<Key, T>::const_iterator &const_iterator::operator--()

El operador de prefijo -- (--i) convierte en actual el elemento precedente y devuelve un iterador que apunta al nuevo elemento actual.

Llamar a esta función en QMap::begin() conduce a resultados indefinidos.

Véase también operator++().

QMap<Key, T>::const_iterator const_iterator::operator--(int)

El operador postfijo -- (i--) hace actual el elemento precedente y devuelve un iterador que apunta al elemento previamente actual.

Se trata de una función sobrecargada.

const T *const_iterator::operator->() const

Devuelve un puntero al valor del elemento actual.

Véase también value().

No miembros relacionados

bool operator!=(const QMap<Key, T>::const_iterator &lhs, const QMap<Key, T>::const_iterator &rhs)

Devuelve true si lhs apunta a un elemento distinto del iterador rhs; en caso contrario devuelve false.

Véase también operator==().

bool operator==(const QMap<Key, T>::const_iterator &lhs, const QMap<Key, T>::const_iterator &rhs)

Devuelve true si lhs apunta al mismo elemento que el iterador rhs; en caso contrario devuelve false.

Véase también operator!=().

© 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.