En esta página

QMultiMap::key_iterator Class

class QMultiMap::key_iterator

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

Funciones públicas

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

Descripción detallada

QMultiMap::key_iterator es esencialmente lo mismo que QMultiMap::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 QMultiMap::iterator y QMultiMap::const_iterator, se puede acceder fácilmente a la clave llamando a QMultiMap::iterator::key():

for (auto it = multimap.cbegin(), end = multimap.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 QMultiMap y los algoritmos de estilo STL necesitamos un iterador que haga referencia a una clave en lugar de a un valor. Con QMultiMap::key_iterator podemos aplicar un algoritmo a un rango de claves sin tener que llamar a QMultiMap::keys(), lo cual es ineficiente ya que cuesta una iteración QMultiMap y la asignación de memoria para crear un QList temporal.

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

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

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

El constructor por defecto QMultiMap::key_iterator crea un iterador no inicializado. Debes inicializarlo usando una función QMultiMap como QMultiMap::keyBegin() o QMultiMap::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 QMultiMap::const_iterator y QMultiMap::iterator.

Documentación de funciones miembro

QMultiMap<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!=(QMultiMap<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.

QMultiMap<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 QMultiMap::keyEnd() conduce a resultados indefinidos.

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

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

QMultiMap<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 QMultiMap::keyBegin() conduce a resultados indefinidos.

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

QMultiMap<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==(QMultiMap<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.