Sur cette page

QMetaContainer Class

La classe `QMetaContainer` offre des fonctionnalités communes aux conteneurs séquentiels et associatifs. En savoir plus...

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

Comparaisons QMetaContainer

CatégorieTypes comparables
égalitéQMetaContainer

Fonctions publiques

QMetaContainer()
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-types de Qt qui permet un accès sans spécification de type aux types de type conteneur lors de l'exécution.

Il sert de base commune pour accéder de manière générique aux propriétés des conteneurs, telles que la taille, l’itération et les opérations de vidage, 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

[constexpr noexcept default] QMetaContainer::QMetaContainer()

Construit par défaut une instance de ` QMetaContainer`.

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

Fait avancer l'iterator constante de step pas. Si step est négatif, l'iterator est déplacée vers l'arrière, en direction du début du conteneur. Le comportement n'est pas spécifié pour les valeurs négatives de step si hasBidirectionalIterator() renvoie false.

Voir également constBegin() et constEnd().

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

Fait avancer l’ iterator non constante de step pas. Si step est négative, l’ iterator est déplacée vers l’arrière, en direction du début du conteneur. Le comportement n’est pas spécifié pour les valeurs négatives de step si hasBidirectionalIterator() renvoie false.

Voir également begin() et end().

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

Crée et renvoie un itérateur non constant 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 ` à un moment donné, afin de libérer la mémoire.

Renvoie ` nullptr ` si le conteneur ne propose aucun itérateur non-const.

Voir également end(), constBegin(), constEnd() et destroyIterator().

bool QMetaContainer::canClear() const

Renvoie « true » si le conteneur peut être vidé, « false » dans le cas contraire.

Voir aussi clear().

void QMetaContainer::clear(void *container) const

Efface l'container on spécifiée si cela est possible.

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 également constBegin() et constEnd().

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

Renvoie ` true ` si les itérateurs non constants ` i ` et ` j ` pointent vers la même valeur dans le conteneur qu'ils parcourent ; sinon, renvoie ` false`.

Voir également begin() et end().

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

Crée et renvoie un itérateur 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 ` destroyConstIterator ` à un moment donné, afin de libérer la mémoire.

Renvoie ` nullptr ` si le conteneur ne propose aucun itérateur const.

Voir également 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 être détruit à l'aide de ` destroyConstIterator ` à un moment donné, afin de libérer la mémoire.

Renvoie ` nullptr ` si le conteneur ne propose aucun itérateur const.

Voir également 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. Par la suite, la fonction compareConstIterator(target, source) renvoie true.

Voir également 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. Par la suite, la fonction compareIterator(target, source) renvoie true.

Voir également begin() et end().

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

Détruit un objet ` iterator ` de type `const` précédemment créé à l'aide de ` constBegin()` ou ` constEnd()`.

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

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

Détruit un objet « iterator » non constant créé précédemment à l'aide des fonctions begin() ou end().

Voir également 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, ce qui équivaut à 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 constants i et j, ce qui équivaut à 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 constant pointant 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 ` à un moment donné, afin de libérer la mémoire.

Renvoie ` nullptr ` si le conteneur ne propose aucun itérateur non-const.

Voir également 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, tels que définis respectivement par `std::bidirectional_iterator_tag` et `std::random_access_iterator_tag`. Sinon, renvoie ` false`.

QMetaContainer Part du principe que les itérateurs const et non const d'un même conteneur possèdent les mêmes traits d'itérateur.

bool QMetaContainer::hasConstIterator() const

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

Voir également 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 direct 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 directs. 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 d’un même conteneur possèdent 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 d'accès direct, bidirectionnel et aléatoire sont des spécialisations des itérateurs d'entrée. Cette méthode renvoie également ` true ` si le conteneur fournit l'un d'entre eux.

QMetaContainer suppose que les itérateurs const et non const d’un même conteneur possèdent 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 » dans le cas contraire.

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

bool QMetaContainer::hasRandomAccessIterator() const

Renvoie ` 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, renvoie ` false`.

QMetaContainer Part du principe que les itérateurs const et non const d'un même conteneur possèdent les mêmes traits d'itérateur.

bool QMetaContainer::hasSize() const

Renvoie ` true ` si la taille du conteneur peut être interrogée, ` false ` dans le cas contraire.

Voir aussi size().

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

Renvoie le nombre de valeurs contenues dans l’ container donné, si sa taille peut être interrogée. Sinon, 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.