En esta página

QSet::const_iterator Class

class QSet::const_iterator

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

Tipos públicos

Funciones públicas

const_iterator()
const_iterator(const QSet<T>::iterator &other)
const_iterator(const QSet<T>::const_iterator &other)
bool operator!=(const QSet<T>::const_iterator &other) const
const T &operator*() const
QSet<T>::const_iterator &operator++()
QSet<T>::const_iterator operator++(int)
const T *operator->() const
QSet<T>::const_iterator &operator=(const QSet<T>::const_iterator &other)
bool operator==(const QSet<T>::const_iterator &other) const

Descripción detallada

QSet incluye tanto iteradores de estilo STL como iteradores de estilo Java. Los iteradores de estilo STL son más de bajo nivel y más engorrosos de usar; por otro lado, son ligeramente más rápidos y, para los desarrolladores que ya conocen STL, tienen la ventaja de la familiaridad.

QSet<Key, T>::const_iterator le permite iterar sobre un QSet. Si desea modificar el QSet mientras itera sobre él, debe utilizar QSet::iterator en su lugar. Generalmente es una buena práctica usar QSet::const_iterator sobre un QSet no-const también, a menos que necesites cambiar el QSet 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 QSet::const_iterator crea un iterador no inicializado. Debes inicializarlo usando una función como QSet::begin(), QSet::end(), o QSet::insert() antes de que puedas empezar a iterar. A continuación se muestra un bucle típico que imprime todos los elementos almacenados en un conjunto:

QSet<QString> set = {"Enero", "Febrero", /*...*/ "Diciembre"};// i es QSet<QString>::const_iteratorfor(auto i = set.cbegin(), end = set.cend(); i != end; ++i)    qDebug() << *i;

Los iteradores de estilo STL pueden utilizarse como argumentos de generic algorithms. Por ejemplo, aquí se muestra cómo encontrar un elemento en el conjunto utilizando el algoritmo qFind():

QSet<QString> set;
//...
const auto predicate = [](const QString &s) { return s.compare("Jeanette", Qt::CaseInsensitive) == 0; };
QSet<QString>::const_iterator it = std::find_if(set.cbegin(), set.cend(), predicate);
if (it != set.constEnd())
    cout << "Found Jeanette" << endl;

Advertencia: Los iteradores en contenedores implícitamente compartidos no funcionan exactamente como los iteradores STL. Deberías 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 QSet::iterator y QSetIterator.

Documentación de tipos de miembros

const_iterator::iterator_category

Sinónimos de std::bidirectional_iterator_tag que indican que estos iteradores son iteradores bidireccionales.

Documentación de funciones miembro

const_iterator::const_iterator()

Construye un iterador no inicializado.

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

Véase también QSet::begin() y QSet::end().

const_iterator::const_iterator(const QSet<T>::iterator &other)

Construye una copia de other.

Se trata de una función sobrecargada.

const_iterator::const_iterator(const QSet<T>::const_iterator &other)

Construye una copia de other.

bool const_iterator::operator!=(const QSet<T>::const_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 T &const_iterator::operator*() const

Devuelve una referencia al elemento actual.

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

QSet<T>::const_iterator &const_iterator::operator++()

El operador prefijo ++ (++it) avanza el iterador al siguiente elemento del conjunto y devuelve un iterador al nuevo elemento actual.

Llamar a esta función en QSet<T>::constEnd() conduce a resultados indefinidos.

QSet<T>::const_iterator const_iterator::operator++(int)

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

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

Devuelve un puntero al elemento actual.

Véase también operator*().

QSet<T>::const_iterator &const_iterator::operator=(const QSet<T>::const_iterator &other)

Asigna other a este iterador.

bool const_iterator::operator==(const QSet<T>::const_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.