Sur cette page

QMetaAssociation Class

La classe QMetaAssociation permet l'accès par effacement de type aux conteneurs associatifs. Plus d'informations...

En-tête : #include <QMetaAssociation>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core
Depuis : Qt 6.0
Hérites : QMetaContainer

Cette classe est comparable à l'égalité.

Types publics

(since 6.11) class Iterable

Fonctions publiques

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

Membres publics statiques

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

Description détaillée

La classe fournit un certain nombre d'opérations primitives sur les conteneurs, en utilisant void* comme opérandes. De cette façon, vous pouvez manipuler un conteneur générique récupéré à partir d'une variante sans connaître son type.

QMetaAssociation couvre à la fois les conteneurs avec des valeurs mappées tels que QMap ou QHash, et les conteneurs qui ne contiennent que des clés tels que QSet.

Les arguments void* des différentes méthodes sont généralement créés en utilisant un QVariant du type de conteneur ou de valeur correspondant, et en appelant ses méthodes QVariant::data() ou QVariant::constData(). Cependant, vous pouvez également passer des pointeurs simples vers des objets du type conteneur ou valeur.

L'invalidation de l'itérateur suit les règles données par les conteneurs sous-jacents et n'est pas exprimée dans l'API. Par conséquent, pour un conteneur véritablement générique, tous les itérateurs doivent être considérés comme invalides après toute opération d'écriture.

Voir également QMetaContainer, QMetaSequence, QIterable, et QIterator.

Documentation des fonctions membres

bool QMetaAssociation::canContainsKey() const

Renvoie true si le conteneur peut être interrogé sur les clés à l'aide de containsKey(), sinon renvoie false.

bool QMetaAssociation::canCreateConstIteratorAtKey() const

Renvoie true si un itérateur constant pointant vers une entrée du conteneur peut être créé à l'aide de createConstIteratorAtKey(), sinon renvoie false.

bool QMetaAssociation::canCreateIteratorAtKey() const

Renvoie true si un itérateur pointant vers une entrée du conteneur peut être créé à l'aide de createIteratorAtKey(), sinon renvoie false.

Voir aussi createIteratorAtKey().

bool QMetaAssociation::canGetKeyAtConstIterator() const

Renvoie true si une clé peut être récupérée à partir d'un itérateur const en utilisant keyAtConstIterator(), sinon renvoie false.

Voir aussi keyAtConstIterator().

bool QMetaAssociation::canGetKeyAtIterator() const

Renvoie true si une clé peut être récupérée à partir d'un itérateur non-const en utilisant keyAtIterator(), sinon renvoie false.

Voir aussi keyAtIterator().

bool QMetaAssociation::canGetMappedAtConstIterator() const

Renvoie true si une valeur mappée peut être récupérée à partir d'un itérateur const en utilisant mappedAtConstIterator(), sinon renvoie false.

Voir aussi mappedAtConstIterator().

bool QMetaAssociation::canGetMappedAtIterator() const

Renvoie true si une valeur mappée peut être récupérée à partir d'un itérateur non-const en utilisant mappedAtIterator(), sinon renvoie false.

Voir aussi mappedAtIterator().

bool QMetaAssociation::canGetMappedAtKey() const

Renvoie true si le conteneur peut être interrogé sur les valeurs à l'aide de mappedAtKey(), sinon renvoie false.

bool QMetaAssociation::canInsertKey() const

Renvoie true si des clés peuvent être ajoutées au conteneur à l'aide de insertKey(), sinon renvoie false.

Voir aussi insertKey().

bool QMetaAssociation::canRemoveKey() const

Renvoie true si les clés peuvent être retirées du conteneur à l'aide de removeKey(), sinon renvoie false.

Voir aussi removeKey().

bool QMetaAssociation::canSetMappedAtIterator() const

Renvoie true si une valeur mappée peut être définie via un itérateur non-const en utilisant setMappedAtIterator(), sinon renvoie false.

Voir aussi setMappedAtIterator().

bool QMetaAssociation::canSetMappedAtKey() const

Renvoie true si les valeurs mappées peuvent être modifiées dans le conteneur à l'aide de setMappedAtKey(), sinon renvoie false.

Voir aussi setMappedAtKey().

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

Renvoie true si le site container peut être interrogé sur les clés et contient le site key, sinon renvoie false.

Voir aussi canContainsKey().

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

Renvoie un itérateur constant pointant vers l'entrée de key dans container, si possible. Si l'entrée n'existe pas, crée un const iterator pointant vers la fin de container. Si aucun const iterator ne peut être créé, renvoie nullptr.

L'itérateur constant doit être détruit à l'aide de destroyConstIterator().

Voir aussi canCreateConstIteratorAtKey(), constBegin(), constEnd() et destroyConstIterator().

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

Renvoie un itérateur non-const pointant vers l'entrée de key dans container, si possible. Si l'entrée n'existe pas, crée un itérateur non-const pointant vers la fin de container. Si aucun itérateur non-const ne peut être créé, renvoie nullptr.

L'itérateur non-const doit être détruit à l'aide de destroyIterator().

Voir aussi canCreateIteratorAtKey(), begin(), end() et destroyIterator().

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

Renvoie le site QMetaAssociation correspondant au type donné en paramètre du modèle.

Cette fonction a été introduite dans Qt 6.0.

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

Insère le key dans le container si possible. Si le conteneur a des valeurs mappées, une valeur mappée créée par défaut est associée à key.

Voir aussi canInsertKey().

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

Récupère la clé désignée par la constante iterator et la stocke dans l'emplacement mémoire désigné par key, si possible.

Voir aussi canGetKeyAtConstIterator(), constBegin(), constEnd() et createConstIteratorAtKey().

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

Récupère la clé désignée par le non-const iterator et la stocke dans l'emplacement mémoire désigné par key, si possible.

Voir aussi canGetKeyAtIterator(), begin(), end() et createIteratorAtKey().

QMetaType QMetaAssociation::keyMetaType() const

Renvoie le méta type des clés du conteneur.

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

Récupère la valeur mappée indiquée par la constante iterator et la stocke dans l'emplacement mémoire indiqué par mapped, si possible.

Voir aussi canGetMappedAtConstIterator(), constBegin(), constEnd() et createConstIteratorAtKey().

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

Récupère la valeur mappée indiquée par le non-const iterator et la stocke dans l'emplacement mémoire indiqué par mapped, si possible.

Voir aussi setMappedAtIterator(), canGetMappedAtIterator(), begin(), end() et createIteratorAtKey().

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

Récupère la valeur mappée associée à key dans container et la place dans l'emplacement mémoire indiqué par mapped, si cela est possible.

Voir aussi setMappedAtKey() et canGetMappedAtKey().

QMetaType QMetaAssociation::mappedMetaType() const

Renvoie le méta type des valeurs mappées dans le conteneur.

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

Supprime l'adresse key et la valeur mappée qui lui est associée de l'adresse container, si possible.

Voir aussi canRemoveKey().

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

Écrit la valeur mapped dans l'emplacement du conteneur indiqué par le non-const iterator, si possible.

Voir aussi mappedAtIterator(), canSetMappedAtIterator(), begin(), end() et createIteratorAtKey().

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

Remplace la valeur associée à key dans container en utilisant la valeur de mapped transmise en tant qu'argument, si cela est possible.

Voir aussi mappedAtKey() et canSetMappedAtKey().

Non-membres apparentés

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

Renvoie true si le QMetaAssociation lhs représente un type de conteneur différent du QMetaAssociation rhs , sinon renvoie false.

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

Renvoie true si le QMetaAssociation lhs représente le même type de conteneur que le QMetaAssociation rhs , sinon renvoie 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.