QHashIterator Class
template <typename Key, typename T> class QHashIteratorLa clase QHashIterator proporciona un iterador const estilo Java para QHash y QMultiHash. Más...
| Cabecera: | #include <QHashIterator> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
Funciones públicas
| QHashIterator(const QHash<Key, T> &hash) | |
| bool | findNext(const T &value) |
| bool | hasNext() const |
| const Key & | key() const |
| QHashIterator<Key, T>::Item | next() |
| QHashIterator<Key, T>::Item | peekNext() const |
| void | toBack() |
| void | toFront() |
| const T & | value() const |
| QHashIterator<Key, T> & | operator=(const QHash<Key, T> &hash) |
Descripción detallada
QHash tiene iteradores de estilo Java e iteradores de estilo STL. Los iteradores de estilo STL son más eficientes y deberían preferirse.
QHashIterator<Key, T> te permite iterar sobre un QHash (o un QMultiHash). Si quieres modificar el hash mientras iteras sobre él, utiliza QMutableHashIterator en su lugar.
El constructor QHashIterator toma un QHash como argumento. Después de la construcción, el iterador se encuentra al principio del hash (antes del primer elemento). He aquí cómo iterar sobre todos los elementos secuencialmente:
QHash<int, QWidget*> hash;//...QHashIterator<int, QWidget*> i(hash);while (i.hasNext()) { i.next(); qDebug() << i.key() << ": " << i.value(); }
La función next() devuelve el siguiente elemento del hash 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.
Si desea encontrar todas las apariciones de un valor determinado, utilice findNext() en un bucle. Por ejemplo:
QHashIterator<int, QWidget*> i(hash);while (i.findNext(widget)) { qDebug() << "Found widget " << widget << " under key " << i.key(); }
Se pueden utilizar múltiples iteradores sobre el mismo hash. Si el hash se modifica mientras un QHashIterator está activo, el QHashIterator continuará iterando sobre el hash original, ignorando la copia modificada.
Ver también QMutableHashIterator y QHash::const_iterator.
Documentación de las funciones miembro
QHashIterator::QHashIterator(const QHash<Key, T> &hash)
Construye un iterador para recorrer hash. El iterador se coloca al principio del hash (antes del primer elemento).
Véase también operator=().
bool QHashIterator::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.
bool QHashIterator::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 Key &QHashIterator::key() const
Devuelve la clave del último elemento que se saltó utilizando una de las funciones de recorrido (next(), findNext()).
Véase también value().
QHashIterator<Key, T>::Item QHashIterator::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() y peekNext().
QHashIterator<Key, T>::Item QHashIterator::peekNext() const
Devuelve el 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() y next().
void QHashIterator::toBack()
Mueve el iterador a la parte posterior del contenedor (después del último elemento).
Véase también toFront().
void QHashIterator::toFront()
Mueve el iterador al principio del contenedor (antes del primer elemento).
Véase también toBack() y next().
const T &QHashIterator::value() const
Devuelve el valor del último elemento que se saltó utilizando una de las funciones de recorrido (next(), findNext()).
Véase también key().
QHashIterator<Key, T> &QHashIterator::operator=(const QHash<Key, T> &hash)
Hace que el iterador opere en hash. El iterador se coloca al principio del hash (antes del primer elemento).
© 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.