En esta página

QMap::key_iterator Class

class QMap::key_iterator

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

Funciones públicas

QMap<Key, T>::const_iterator base() const
bool operator!=(QMap<Key, T>::key_iterator other) const
const Key &operator*() const
QMap<Key, T>::key_iterator &operator++()
QMap<Key, T>::key_iterator operator++(int)
QMap<Key, T>::key_iterator &operator--()
QMap<Key, T>::key_iterator operator--(int)
const Key *operator->() const
bool operator==(QMap<Key, T>::key_iterator other) const

Descripción detallada

QMap::key_iterator es esencialmente lo mismo que QMap::const_iterator con la diferencia de que operator*() y operator->() devuelven una clave en lugar de un valor.

Para la mayoría de los usos se debe utilizar QMap::iterator y QMap::const_iterator, se puede acceder fácilmente a la clave llamando a QMap::iterator::key():

for (QMap<int, QString>::const_iterator it = map.cbegin(), end = map.cend(); it != end; ++it) {
    cout << "The key: " << it.key() << endl;
    cout << "The value: " << qPrintable(it.value()) << endl;
    cout << "Also the value: " << qPrintable(*it) << endl;
}

Sin embargo, para tener interoperabilidad entre las claves de QMap y los algoritmos de estilo STL necesitamos un iterador que haga referencia a una clave en lugar de a un valor. Con QMap::key_iterator podemos aplicar un algoritmo a un rango de claves sin tener que llamar a QMap::keys(), lo cual es ineficiente ya que cuesta una iteración QMap y la asignación de memoria para crear un QList temporal.

// Ineficiente, keys() es caroQList<int> keys = map.keys();int numPrimes = std::count_if(map.cbegin(), map.cend(), isPrimeNumber);qDeleteAll(map2.keys());

// Eficiente, no necesita asignación de memoriaint primeNums = std::count_if(map.keyBegin(), map.keyEnd(), isPrimeNumber);qDeleteAll(map2.keyBegin(), map2.keyEnd());

QMap::key_iterator es const, no es posible modificar la clave.

El constructor por defecto QMap::key_iterator crea un iterador no inicializado. Debes inicializarlo usando una función QMap como QMap::keyBegin() o QMap::keyEnd().

Advertencia: Los iteradores sobre contenedores implícitamente compartidos no funcionan exactamente como 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.

Véase también QMap::const_iterator y QMap::iterator.

Documentación de funciones miembro

QMap<Key, T>::const_iterator key_iterator::base() const

Devuelve el const_iterator subyacente en el que se basa este key_iterator.

bool key_iterator::operator!=(QMap<Key, T>::key_iterator other) const

Devuelve true si other apunta a un elemento distinto de este iterador; en caso contrario devuelve false.

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

const Key &key_iterator::operator*() const

Devuelve la clave del elemento actual.

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

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

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

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

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

El operador postfijo ++ (i++) avanza el iterador al siguiente elemento del hash y devuelve un iterador al elemento anterior.

Se trata de una función sobrecargada.

QMap<Key, T>::key_iterator &key_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::keyBegin() conduce a resultados indefinidos.

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

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

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

Se trata de una función sobrecargada.

const Key *key_iterator::operator->() const

Devuelve un puntero a la clave del elemento actual.

bool key_iterator::operator==(QMap<Key, T>::key_iterator other) const

Devuelve true si other apunta al mismo elemento que este iterador; 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.