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() |
Non-membres apparentés
| 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.