En esta página

QMetaAssociation Class

La clase QMetaAssociation permite el acceso con borrado de tipo a contenedores asociativos. Más...

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

Esta clase es igual-comparable.

Tipos Públicos

(since 6.11) class Iterable

Funciones Públicas

bool canContainsKey() const
bool canCreateConstIteratorAtKey() const
bool canCreateIteratorAtKey() const
bool canGetKeyAtConstIterator() const
bool canGetKeyAtIterator() const
bool canGetMappedAtConstIterator() const
bool canGetMappedAtIterator() const
bool canGetMappedAtKey() const
bool canInsertKey() const
bool canRemoveKey() const
bool canSetMappedAtIterator() const
bool canSetMappedAtKey() const
bool containsKey(const void *container, const void *key) const
void *createConstIteratorAtKey(const void *container, const void *key) const
void *createIteratorAtKey(void *container, const void *key) const
void insertKey(void *container, const void *key) const
void keyAtConstIterator(const void *iterator, void *key) const
void keyAtIterator(const void *iterator, void *key) const
QMetaType keyMetaType() const
void mappedAtConstIterator(const void *iterator, void *mapped) const
void mappedAtIterator(const void *iterator, void *mapped) const
void mappedAtKey(const void *container, const void *key, void *mapped) const
QMetaType mappedMetaType() const
void removeKey(void *container, const void *key) const
void setMappedAtIterator(const void *iterator, const void *mapped) const
void setMappedAtKey(void *container, const void *key, const void *mapped) const

Miembros públicos estáticos

(since 6.0) QMetaAssociation fromContainer()
bool operator!=(const QMetaAssociation &lhs, const QMetaAssociation &rhs)
bool operator==(const QMetaAssociation &lhs, const QMetaAssociation &rhs)

Descripción Detallada

La clase proporciona una serie de operaciones primitivas de contenedor, utilizando void* como operandos. De esta forma, se puede manipular un contenedor genérico recuperado de una Variante sin conocer su tipo.

QMetaAssociation cubre tanto contenedores con valores asignados como QMap o QHash, como contenedores que sólo contienen claves como QSet.

Los argumentos void* de los distintos métodos se crean normalmente utilizando un QVariant del tipo de contenedor o valor respectivo, y llamando a sus métodos QVariant::data() o QVariant::constData(). Sin embargo, también se pueden pasar punteros planos a objetos del tipo contenedor o valor.

La invalidación de iteradores sigue las reglas dadas por los contenedores subyacentes y no se expresa en la API. Por lo tanto, para un contenedor verdaderamente genérico, cualquier iterador debería considerarse inválido después de cualquier operación de escritura.

Véase también QMetaContainer, QMetaSequence, QIterable, y QIterator.

Documentación de las funciones miembro

bool QMetaAssociation::canContainsKey() const

Devuelve true si se pueden consultar las claves del contenedor mediante containsKey(), en caso contrario devuelve false.

bool QMetaAssociation::canCreateConstIteratorAtKey() const

Devuelve true si se puede crear un iterador const que apunte a una entrada del contenedor mediante createConstIteratorAtKey(), en caso contrario devuelve false.

bool QMetaAssociation::canCreateIteratorAtKey() const

Devuelve true si se puede crear un iterador que apunte a una entrada del contenedor mediante createIteratorAtKey(), en caso contrario devuelve false.

Véase también createIteratorAtKey().

bool QMetaAssociation::canGetKeyAtConstIterator() const

Devuelve true si se puede recuperar una clave de un iterador const utilizando keyAtConstIterator(), en caso contrario devuelve false.

Véase también keyAtConstIterator().

bool QMetaAssociation::canGetKeyAtIterator() const

Devuelve true si se puede recuperar una clave de un iterador no-const utilizando keyAtIterator(), en caso contrario devuelve false.

Véase también keyAtIterator().

bool QMetaAssociation::canGetMappedAtConstIterator() const

Devuelve true si se puede recuperar un valor mapeado de un iterador const utilizando mappedAtConstIterator(), en caso contrario devuelve false.

Véase también mappedAtConstIterator().

bool QMetaAssociation::canGetMappedAtIterator() const

Devuelve true si se puede recuperar un valor mapeado de un iterador no-const utilizando mappedAtIterator(), en caso contrario devuelve false.

Véase también mappedAtIterator().

bool QMetaAssociation::canGetMappedAtKey() const

Devuelve true si se pueden consultar los valores del contenedor mediante mappedAtKey(), en caso contrario devuelve false.

bool QMetaAssociation::canInsertKey() const

Devuelve true si se pueden añadir claves al contenedor utilizando insertKey(), en caso contrario devuelve false.

Véase también insertKey().

bool QMetaAssociation::canRemoveKey() const

Devuelve true si las claves se pueden eliminar del contenedor utilizando removeKey(), en caso contrario devuelve false.

Véase también removeKey().

bool QMetaAssociation::canSetMappedAtIterator() const

Devuelve true si se puede establecer un valor mapeado mediante un iterador no-const utilizando setMappedAtIterator(), en caso contrario devuelve false.

Véase también setMappedAtIterator().

bool QMetaAssociation::canSetMappedAtKey() const

Devuelve true si los valores asignados pueden modificarse en el contenedor utilizando setMappedAtKey(), en caso contrario devuelve false.

Véase también setMappedAtKey().

bool QMetaAssociation::containsKey(const void *container, const void *key) const

Devuelve true si el container puede ser consultado por claves y contiene el key, en caso contrario devuelve false.

Véase también canContainsKey().

void *QMetaAssociation::createConstIteratorAtKey(const void *container, const void *key) const

Devuelve un iterador const que apunta a la entrada de key en container, si es posible. Si la entrada no existe, crea un iterador const que apunta al final de container. Si no se puede crear ningún iterador const, devuelve nullptr.

El iterador const debe destruirse utilizando destroyConstIterator().

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

void *QMetaAssociation::createIteratorAtKey(void *container, const void *key) const

Devuelve un iterador no-const que apunta a la entrada de key en el container, si es posible. Si la entrada no existe, crea un iterador no-const que apunta al final de container. Si no se puede crear un iterador no-const, devuelve nullptr.

El iterador no-const debe ser destruido usando destroyIterator().

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

[static constexpr, since 6.0] template <typename T> QMetaAssociation QMetaAssociation::fromContainer()

Devuelve el QMetaAssociation correspondiente al tipo dado como parámetro de plantilla.

Esta función se introdujo en Qt 6.0.

void QMetaAssociation::insertKey(void *container, const void *key) const

Inserta el key en el container si es posible. Si el contenedor tiene valores asignados, se asocia un valor asignado creado por defecto a key.

Véase también canInsertKey().

void QMetaAssociation::keyAtConstIterator(const void *iterator, void *key) const

Recupera la clave apuntada por la const iterator y la almacena en la posición de memoria apuntada por key, si es posible.

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

void QMetaAssociation::keyAtIterator(const void *iterator, void *key) const

Recupera la clave apuntada por el no-const iterator y la almacena en la posición de memoria apuntada por key, si es posible.

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

QMetaType QMetaAssociation::keyMetaType() const

Devuelve el metatipo de las claves del contenedor.

void QMetaAssociation::mappedAtConstIterator(const void *iterator, void *mapped) const

Recupera el valor mapeado apuntado por la const iterator y lo almacena en la posición de memoria apuntada por mapped, si es posible.

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

void QMetaAssociation::mappedAtIterator(const void *iterator, void *mapped) const

Recupera el valor mapeado apuntado por el no-const iterator y lo almacena en la posición de memoria apuntada por mapped, si es posible.

Véase también setMappedAtIterator(), canGetMappedAtIterator(), begin(), end() y createIteratorAtKey().

void QMetaAssociation::mappedAtKey(const void *container, const void *key, void *mapped) const

Recupera el valor mapeado asociado con el key en el container y lo coloca en la ubicación de memoria apuntada por mapped, si eso es posible.

Véase también setMappedAtKey() y canGetMappedAtKey().

QMetaType QMetaAssociation::mappedMetaType() const

Devuelve el metatipo de los valores asignados en el contenedor.

void QMetaAssociation::removeKey(void *container, const void *key) const

Elimina el key y su valor mapeado asociado del container si es posible.

Véase también canRemoveKey().

void QMetaAssociation::setMappedAtIterator(const void *iterator, const void *mapped) const

Escribe el valor mapped en la ubicación del contenedor apuntada por el no-const iterator, si es posible.

Véase también mappedAtIterator(), canSetMappedAtIterator(), begin(), end(), y createIteratorAtKey().

void QMetaAssociation::setMappedAtKey(void *container, const void *key, const void *mapped) const

Sobrescribe el valor asociado a key en container utilizando el valor mapped pasado como argumento si es posible.

Véase también mappedAtKey() y canSetMappedAtKey().

No miembros relacionados

[noexcept] bool operator!=(const QMetaAssociation &lhs, const QMetaAssociation &rhs)

Devuelve true si el QMetaAssociation lhs representa un tipo de contenedor diferente al QMetaAssociation rhs , en caso contrario devuelve false.

[noexcept] bool operator==(const QMetaAssociation &lhs, const QMetaAssociation &rhs)

Devuelve true si el QMetaAssociation lhs representa el mismo tipo de contenedor que el QMetaAssociation rhs , en caso contrario devuelve false.

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