Sur cette page

QMetaContainer Class

La classe QMetaContainer fournit des fonctionnalités communes pour les conteneurs séquentiels et associatifs. Plus d'informations...

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

QMetaAssociation et QMetaSequence

Cette classe est comparable à l'égalité.

Fonctions publiques

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

Description détaillée

QMetaContainer fait partie du système de méta-type de Qt qui permet un accès aux types de type conteneur au moment de l'exécution.

Il sert de base commune pour accéder aux propriétés des conteneurs de manière générique, telles que la taille, l'itération et les opérations d'effacement, sans connaître le type réel du conteneur.

Les classes dérivées, telles que QMetaSequence, fournissent des interfaces spécialisées pour les conteneurs séquentiels.

Documentation des fonctions membres

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

Avance le const iterator de step pas. Si step est négatif, iterator est déplacé vers l'arrière, vers le début du conteneur. Le comportement n'est pas spécifié pour les valeurs négatives de step si hasBidirectionalIterator() renvoie un message faux.

Voir aussi constBegin() et constEnd().

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

Avance le non-const iterator de step pas. Si step est négatif, iterator est déplacé vers l'arrière, vers le début du conteneur. Le comportement n'est pas spécifié pour les valeurs négatives de step si hasBidirectionalIterator() renvoie false.

Voir aussi begin() et end().

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

Crée et renvoie un itérateur non-const pointant vers le début de container. L'itérateur est alloué sur le tas à l'aide de new. Il doit être détruit à l'aide de destroyIterator pour récupérer la mémoire.

Retourne nullptr si le conteneur ne propose pas d'itérateur non-const.

Voir aussi end(), constBegin(), constEnd() et destroyIterator().

bool QMetaContainer::canClear() const

Renvoie true si le conteneur peut être vidé, false sinon.

Voir aussi clear().

void QMetaContainer::clear(void *container) const

Efface le site container s'il peut être effacé.

Voir aussi canClear().

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

Renvoie true si les itérateurs constants i et j pointent vers la même valeur dans le conteneur sur lequel ils itèrent, sinon renvoie false.

Voir aussi constBegin() et constEnd().

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

Renvoie true si les itérateurs non-const i et j pointent vers la même valeur dans le conteneur sur lequel ils itèrent, sinon renvoie false.

Voir aussi begin() et end().

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

Crée et renvoie un itérateur constant pointant vers le début de container. L'itérateur est alloué sur le tas à l'aide de new. Il doit éventuellement être détruit à l'aide de destroyConstIterator pour récupérer la mémoire.

Retourne nullptr si le conteneur ne propose pas d'itérateur constant.

Voir aussi constEnd(), begin(), end() et destroyConstIterator().

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

Crée et renvoie un itérateur constant pointant vers la fin de container. L'itérateur est alloué sur le tas à l'aide de new. Il doit éventuellement être détruit à l'aide de destroyConstIterator pour récupérer la mémoire.

Retourne nullptr si le conteneur ne propose pas d'itérateur constant.

Voir aussi constBegin(), begin(), end() et destroyConstIterator().

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

Copie l'itérateur constant source dans l'itérateur constant target. Ensuite, compareConstIterator(target, source) renvoie true.

Voir aussi constBegin() et constEnd().

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

Copie l'itérateur non-const source dans l'itérateur non-const target. Ensuite, compareIterator(target, source) renvoie true.

Voir aussi begin() et end().

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

Détruit une const iterator précédemment créée à l'aide de constBegin() ou constEnd().

Voir aussi constBegin(), constEnd(), et destroyIterator().

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

Détruit un non-const iterator précédemment créé à l'aide de begin() ou end().

Voir aussi begin(), end() et destroyConstIterator().

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

Renvoie la distance entre les itérateurs constants i et j, l'équivalent de i - j . Si j est plus proche de la fin du conteneur que i, la valeur renvoyée est négative. Le comportement n'est pas spécifié dans ce cas si hasBidirectionalIterator() renvoie false.

Voir également constBegin() et constEnd().

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

Renvoie la distance entre les itérateurs non-const i et j, l'équivalent de i - j . Si j est plus proche de la fin du conteneur que i, la valeur renvoyée est négative. Le comportement n'est pas spécifié dans ce cas si hasBidirectionalIterator() renvoie false.

Voir également begin() et end().

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

Crée et renvoie un itérateur non-const qui pointe vers la fin de container. L'itérateur est alloué sur le tas à l'aide de new. Il doit être détruit à l'aide de destroyIterator pour récupérer la mémoire.

Retourne nullptr si le conteneur ne propose pas d'itérateur non-const.

Voir aussi hasIterator(), begin(), constBegin(), constEnd() et destroyIterator().

bool QMetaContainer::hasBidirectionalIterator() const

Renvoie true si le conteneur sous-jacent fournit un itérateur bidirectionnel ou un itérateur à accès aléatoire tel que défini par std::bidirectional_iterator_tag et std::random_access_iterator_tag, respectivement. Sinon, il renvoie false.

QMetaContainer suppose que les itérateurs const et non-const pour le même conteneur ont les mêmes traits d'itérateur.

bool QMetaContainer::hasConstIterator() const

Renvoie true si le conteneur sous-jacent propose un itérateur constant, false dans le cas contraire.

Voir aussi constBegin(), constEnd(), destroyConstIterator(), compareConstIterator(), diffConstIterator(), advanceConstIterator() et copyConstIterator().

bool QMetaContainer::hasForwardIterator() const

Renvoie true si le conteneur sous-jacent fournit au moins un itérateur forward tel que défini par std::forward_iterator_tag, sinon renvoie false. Les itérateurs bidirectionnels et les itérateurs à accès aléatoire sont des spécialisations des itérateurs forward. Cette méthode renvoie également true si le conteneur fournit l'un de ces itérateurs.

QMetaContainer suppose que les itérateurs const et non-const pour le même conteneur ont les mêmes traits d'itérateur.

bool QMetaContainer::hasInputIterator() const

Renvoie true si le conteneur sous-jacent fournit au moins un itérateur d'entrée tel que défini par std::input_iterator_tag, sinon renvoie false. Les itérateurs forward, bi-directionnels et à accès aléatoire sont des spécialisations des itérateurs d'entrée. Cette méthode renvoie également true si le conteneur fournit l'un de ces itérateurs.

QMetaContainer suppose que les itérateurs const et non-const pour le même conteneur ont les mêmes traits d'itérateur.

bool QMetaContainer::hasIterator() const

Renvoie true si le conteneur sous-jacent propose un itérateur non-const, false sinon.

Voir aussi begin(), end(), destroyIterator(), compareIterator(), diffIterator(), advanceIterator() et copyIterator().

bool QMetaContainer::hasRandomAccessIterator() const

Retourne true si le conteneur sous-jacent fournit un itérateur à accès aléatoire tel que défini par std::random_access_iterator_tag, sinon retourne false.

QMetaContainer suppose que les itérateurs const et non-const pour le même conteneur ont les mêmes traits d'itérateur.

bool QMetaContainer::hasSize() const

Renvoie true si le conteneur peut être interrogé sur sa taille, false sinon.

Voir aussi size().

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

Renvoie le nombre de valeurs dans le site container s'il est possible d'en connaître la taille. Sinon, il renvoie -1.

Voir aussi 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.