En esta página

QMetaContainer Class

La clase QMetaContainer proporciona funcionalidad común para contenedores secuenciales y asociativos. Más...

Cabecera: #include <QMetaContainer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Desde: Qt 6.0
Heredado por:

QMetaAssociation y QMetaSequence

Esta clase es igual-comparable.

Funciones Públicas

void advanceConstIterator(void *iterator, qsizetype step) const
void advanceIterator(void *iterator, qsizetype step) const
void *begin(void *container) const
bool canClear() const
void clear(void *container) const
bool compareConstIterator(const void *i, const void *j) const
bool compareIterator(const void *i, const void *j) const
void *constBegin(const void *container) const
void *constEnd(const void *container) const
void copyConstIterator(void *target, const void *source) const
void copyIterator(void *target, const void *source) const
void destroyConstIterator(const void *iterator) const
void destroyIterator(const void *iterator) const
qsizetype diffConstIterator(const void *i, const void *j) const
qsizetype diffIterator(const void *i, const void *j) const
void *end(void *container) const
bool hasBidirectionalIterator() const
bool hasConstIterator() const
bool hasForwardIterator() const
bool hasInputIterator() const
bool hasIterator() const
bool hasRandomAccessIterator() const
bool hasSize() const
qsizetype size(const void *container) const

Descripción Detallada

QMetaContainer es parte del sistema de meta-tipos de Qt que permite el acceso a tipos tipo contenedor en tiempo de ejecución.

Sirve como base común para acceder a las propiedades de los contenedores de forma genérica, como el tamaño, la iteración y las operaciones de limpieza, sin conocer el tipo real del contenedor.

Las clases derivadas, como QMetaSequence, proporcionan interfaces especializadas para contenedores secuenciales.

Documentación de las funciones miembro

void QMetaContainer::advanceConstIterator(void *iterator, qsizetype step) const

Avanza la const iterator en step pasos. Si step es negativo el iterator se mueve hacia atrás, hacia el principio del contenedor. El comportamiento no está especificado para valores negativos de step si hasBidirectionalIterator() devuelve false.

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

void QMetaContainer::advanceIterator(void *iterator, qsizetype step) const

Avanza el no-const iterator en step pasos. Si step es negativo el iterator se mueve hacia atrás, hacia el principio del contenedor. El comportamiento no está especificado para valores negativos de step si hasBidirectionalIterator() devuelve false.

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

void *QMetaContainer::begin(void *container) const

Crea y devuelve un iterador no-const apuntando al principio de container. El iterador se asigna en el heap usando new. Tiene que ser destruido usando destroyIterator eventualmente, para recuperar la memoria.

Devuelve nullptr si el contenedor no ofrece ningún iterador no-const.

Véase también end(), constBegin(), constEnd(), y destroyIterator().

bool QMetaContainer::canClear() const

Devuelve true si el contenedor puede ser vaciado, false en caso contrario.

Véase también clear().

void QMetaContainer::clear(void *container) const

Borra el container dado si puede ser borrado.

Véase también canClear().

bool QMetaContainer::compareConstIterator(const void *i, const void *j) const

Devuelve true si los iteradores const i y j apuntan al mismo valor en el contenedor sobre el que están iterando, en caso contrario devuelve false.

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

bool QMetaContainer::compareIterator(const void *i, const void *j) const

Devuelve true si los iteradores no-const i y j apuntan al mismo valor en el contenedor sobre el que están iterando, en caso contrario devuelve false.

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

void *QMetaContainer::constBegin(const void *container) const

Crea y devuelve un iterador constante que apunta al principio de container. El iterador se asigna al montón utilizando new. Tiene que ser destruido usando destroyConstIterator eventualmente, para recuperar la memoria.

Devuelve nullptr si el contenedor no ofrece ningún iterador constante.

Véase también constEnd(), begin(), end(), y destroyConstIterator().

void *QMetaContainer::constEnd(const void *container) const

Crea y devuelve un iterador constante que apunta al final de container. El iterador se asigna al montón utilizando new. Tiene que ser destruido usando destroyConstIterator eventualmente, para recuperar la memoria.

Devuelve nullptr si el contenedor no ofrece ningún iterador constante.

Véase también constBegin(), begin(), end(), y destroyConstIterator().

void QMetaContainer::copyConstIterator(void *target, const void *source) const

Copia el iterador const source en el iterador const target. Después compareConstIterator(target, source) devuelve true.

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

void QMetaContainer::copyIterator(void *target, const void *source) const

Copia el iterador no-const source en el iterador no-const target. Después compareIterator(target, source) devuelve true.

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

void QMetaContainer::destroyConstIterator(const void *iterator) const

Destruye una const iterator creada previamente con constBegin() o constEnd().

Véase también constBegin(), constEnd() y destroyIterator().

void QMetaContainer::destroyIterator(const void *iterator) const

Destruye un iterator no-const creado previamente usando begin() o end().

Véase también begin(), end() y destroyConstIterator().

qsizetype QMetaContainer::diffConstIterator(const void *i, const void *j) const

Devuelve la distancia entre los iteradores const i y j, el equivalente de i - j . Si j está más cerca del final del contenedor que i, el valor devuelto es negativo. El comportamiento no está especificado en este caso si hasBidirectionalIterator() devuelve false.

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

qsizetype QMetaContainer::diffIterator(const void *i, const void *j) const

Devuelve la distancia entre los iteradores no-const i y j, el equivalente de i - j . Si j está más cerca del final del contenedor que i, el valor devuelto es negativo. El comportamiento no está especificado en este caso si hasBidirectionalIterator() devuelve false.

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

void *QMetaContainer::end(void *container) const

Crea y devuelve un iterador no-const apuntando al final de container. El iterador se asigna en el heap usando new. Tiene que ser destruido usando destroyIterator eventualmente, para recuperar la memoria.

Devuelve nullptr si el contenedor no ofrece ningún iterador no-const.

Véase también hasIterator(), begin(), constBegin(), constEnd(), y destroyIterator().

bool QMetaContainer::hasBidirectionalIterator() const

Devuelve true si el contenedor subyacente proporciona un iterador bidireccional o un iterador de acceso aleatorio según lo definido por std::bidirectional_iterator_tag y std::random_access_iterator_tag, respectivamente. En caso contrario devuelve false.

QMetaContainer asume que los iteradores const y no const para el mismo contenedor tienen los mismos rasgos de iterador.

bool QMetaContainer::hasConstIterator() const

Devuelve true si el contenedor subyacente ofrece un iterador const, false en caso contrario.

Véase también constBegin(), constEnd(), destroyConstIterator(), compareConstIterator(), diffConstIterator(), advanceConstIterator() y copyConstIterator().

bool QMetaContainer::hasForwardIterator() const

Devuelve true si el contenedor subyacente proporciona al menos un iterador hacia adelante como se define en std::forward_iterator_tag, de lo contrario devuelve false. Los iteradores bidireccionales y los iteradores de acceso aleatorio son especializaciones de los iteradores hacia adelante. Este método también devolverá true si el contenedor proporciona uno de ellos.

QMetaContainer asume que los iteradores const y no const del mismo contenedor tienen los mismos rasgos de iterador.

bool QMetaContainer::hasInputIterator() const

Devuelve true si el contenedor subyacente proporciona al menos un iterador de entrada como se define en std::input_iterator_tag, de lo contrario devuelve false. Los iteradores hacia adelante, bidireccionales y de acceso aleatorio son especializaciones de los iteradores de entrada. Este método también devolverá true si el contenedor proporciona uno de ellos.

QMetaContainer asume que los iteradores const y no const del mismo contenedor tienen los mismos rasgos de iterador.

bool QMetaContainer::hasIterator() const

Devuelve true si el contenedor subyacente ofrece un iterador no-const, false en caso contrario.

Véase también begin(), end(), destroyIterator(), compareIterator(), diffIterator(), advanceIterator() y copyIterator().

bool QMetaContainer::hasRandomAccessIterator() const

Devuelve true si el contenedor subyacente proporciona un iterador de acceso aleatorio como se define en std::random_access_iterator_tag, de lo contrario devuelve false.

QMetaContainer asume que los iteradores const y no const del mismo contenedor tienen los mismos rasgos de iterador.

bool QMetaContainer::hasSize() const

Devuelve true si se puede consultar el tamaño del contenedor, false en caso contrario.

Véase también size().

qsizetype QMetaContainer::size(const void *container) const

Devuelve el número de valores en el container dado si se puede consultar su tamaño. En caso contrario, devuelve -1.

Véase también hasSize().

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