Sur cette page

QMetaSequence Class

La classe QMetaSequence permet l'accès par effacement de type aux conteneurs séquentiels. Plus d'informations...

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

Cette classe est comparable à l'égalité.

Types publics

(since 6.11) class Iterable

Fonctions publiques

void addValue(void *container, const void *value) const
void addValueAtBegin(void *container, const void *value) const
void addValueAtEnd(void *container, const void *value) const
bool canAddValue() const
bool canAddValueAtBegin() const
bool canAddValueAtEnd() const
bool canEraseRangeAtIterator() const
bool canEraseValueAtIterator() const
bool canGetValueAtConstIterator() const
bool canGetValueAtIndex() const
bool canGetValueAtIterator() const
bool canInsertValueAtIterator() const
bool canRemoveValue() const
bool canRemoveValueAtBegin() const
bool canRemoveValueAtEnd() const
bool canSetValueAtIndex() const
bool canSetValueAtIterator() const
void eraseRangeAtIterator(void *container, const void *iterator1, const void *iterator2) const
void eraseValueAtIterator(void *container, const void *iterator) const
void insertValueAtIterator(void *container, const void *iterator, const void *value) const
bool isSortable() const
void removeValue(void *container) const
void removeValueAtBegin(void *container) const
void removeValueAtEnd(void *container) const
void setValueAtIndex(void *container, qsizetype index, const void *value) const
void setValueAtIterator(const void *iterator, const void *value) const
void valueAtConstIterator(const void *iterator, void *result) const
void valueAtIndex(const void *container, qsizetype index, void *result) const
void valueAtIterator(const void *iterator, void *result) const
QMetaType valueMetaType() const

Membres publics statiques

(since 6.0) QMetaSequence fromContainer()
(since 6.0) bool operator!=(const QMetaSequence &lhs, const QMetaSequence &rhs)
(since 6.0) bool operator==(const QMetaSequence &lhs, const QMetaSequence &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.

Les arguments void* des différentes méthodes sont typiquement 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.

Documentation des fonctions membres

void QMetaSequence::addValue(void *container, const void *value) const

Ajoute value à container si possible. Si canAddValue() renvoie false, value n'est pas ajouté. Sinon, si canAddValueAtEnd() renvoie true, value est ajouté à la fin de container. Sinon, si canAddValueAtBegin() renvoie true, value est ajouté au début du conteneur. Sinon, la valeur est ajoutée à un endroit non spécifié ou pas du tout. C'est le cas pour l'ajout de valeurs à un conteneur non ordonné, par exemple QSet.

Voir également canAddValue(), canAddValueAtBegin(), canAddValueAtEnd(), isSortable() et removeValue().

void QMetaSequence::addValueAtBegin(void *container, const void *value) const

Ajoute value au début de container si possible. Si canAddValueAtBegin() renvoie false, value n'est pas ajouté.

Voir aussi canAddValueAtBegin(), isSortable() et removeValueAtBegin().

void QMetaSequence::addValueAtEnd(void *container, const void *value) const

Ajoute value à la fin de container si possible. Si canAddValueAtEnd() renvoie false, value n'est pas ajouté.

Voir aussi canAddValueAtEnd(), isSortable() et removeValueAtEnd().

bool QMetaSequence::canAddValue() const

Renvoie true si des valeurs peuvent être ajoutées au conteneur, false sinon.

Voir aussi addValue() et isSortable().

bool QMetaSequence::canAddValueAtBegin() const

Renvoie true si les valeurs ajoutées à l'aide de addValue() peuvent être placées au début du conteneur, sinon renvoie false.

Voir aussi addValueAtBegin() et canAddValueAtEnd().

bool QMetaSequence::canAddValueAtEnd() const

Renvoie true si les valeurs ajoutées à l'aide de addValue() peuvent être placées à la fin du conteneur, sinon renvoie false.

Voir aussi addValueAtEnd() et canAddValueAtBegin().

bool QMetaSequence::canEraseRangeAtIterator() const

Renvoie true si un intervalle entre deux itérateurs peut être effacé du conteneur, false sinon.

bool QMetaSequence::canEraseValueAtIterator() const

Renvoie true si la valeur pointée par un itérateur non-const peut être effacée, false sinon.

Voir aussi hasIterator() et eraseValueAtIterator().

bool QMetaSequence::canGetValueAtConstIterator() const

Renvoie true si le conteneur sous-jacent peut récupérer la valeur indiquée par un itérateur constant, false dans le cas contraire.

Voir aussi hasConstIterator() et valueAtConstIterator().

bool QMetaSequence::canGetValueAtIndex() const

Renvoie true si les valeurs peuvent être extraites du conteneur par l'index, sinon false.

Voir aussi valueAtIndex().

bool QMetaSequence::canGetValueAtIterator() const

Renvoie true si le conteneur sous-jacent peut récupérer la valeur indiquée par un itérateur non-const, false dans le cas contraire.

Voir aussi hasIterator() et valueAtIterator().

bool QMetaSequence::canInsertValueAtIterator() const

Renvoie true si le conteneur sous-jacent peut insérer une nouvelle valeur, en tenant compte de l'emplacement indiqué par un itérateur non-const.

Voir aussi hasIterator() et insertValueAtIterator().

bool QMetaSequence::canRemoveValue() const

Renvoie true si les valeurs peuvent être retirées du conteneur, false sinon.

Voir aussi removeValue() et isSortable().

bool QMetaSequence::canRemoveValueAtBegin() const

Renvoie true si des valeurs peuvent être supprimées au début du conteneur à l'aide de removeValue(), sinon renvoie false.

Voir aussi removeValueAtBegin() et canRemoveValueAtEnd().

bool QMetaSequence::canRemoveValueAtEnd() const

Renvoie true si les valeurs peuvent être retirées de la fin du conteneur à l'aide de removeValue(), sinon renvoie false.

Voir aussi removeValueAtEnd() et canRemoveValueAtBegin().

bool QMetaSequence::canSetValueAtIndex() const

Renvoie true si une valeur peut être écrite dans le conteneur par l'index, sinon false.

Voir aussi setValueAtIndex().

bool QMetaSequence::canSetValueAtIterator() const

Renvoie true si le conteneur sous-jacent peut écrire sur la valeur indiquée par un itérateur non-const, false dans le cas contraire.

Voir aussi hasIterator() et setValueAtIterator().

void QMetaSequence::eraseRangeAtIterator(void *container, const void *iterator1, const void *iterator2) const

Efface la plage de valeurs entre les itérateurs iterator1 et iterator2 de container, si possible.

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

void QMetaSequence::eraseValueAtIterator(void *container, const void *iterator) const

Efface la valeur indiquée par le non-const iterator de container, si possible.

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

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

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

Cette fonction a été introduite dans Qt 6.0.

void QMetaSequence::insertValueAtIterator(void *container, const void *iterator, const void *value) const

Insère value dans container, si possible, en tenant compte du non-const iterator. Si canInsertValueAtIterator() renvoie false, value n'est pas inséré. Sinon, si isSortable() renvoie true, la valeur est insérée avant la valeur indiquée par iterator. Dans le cas contraire, la valeur value est insérée à un endroit non spécifié ou n'est pas insérée du tout. Dans ce dernier cas, l'adresse iterator est considérée comme un indice. S'il indique le bon endroit pour value, l'opération peut être plus rapide qu'un addValue() sans itérateur.

Voir aussi canInsertValueAtIterator(), isSortable(), begin() et end().

bool QMetaSequence::isSortable() const

Renvoie true si le conteneur sous-jacent est triable, sinon renvoie false. Un conteneur est considéré comme pouvant être trié si les valeurs qui y sont ajoutées sont placées à un endroit défini. L'insertion ou l'ajout dans un conteneur pouvant être trié réussit toujours. L'insertion ou l'ajout dans un conteneur non triable peut échouer, par exemple si le conteneur est un QSet qui contient déjà la valeur insérée.

Voir également addValue(), insertValueAtIterator(), canAddValueAtBegin(), canAddValueAtEnd(), canRemoveValueAtBegin() et canRemoveValueAtEnd().

void QMetaSequence::removeValue(void *container) const

Supprime une valeur de container si possible. Si canRemoveValue() renvoie false, aucune valeur n'est supprimée. Sinon, si canRemoveValueAtEnd() renvoie true, la dernière valeur de container est supprimée. Sinon, si canRemoveValueAtBegin() renvoie true, la première valeur de container est supprimée. Sinon, une valeur non spécifiée ou rien n'est supprimé.

Voir aussi canRemoveValue(), canRemoveValueAtBegin(), canRemoveValueAtEnd(), isSortable() et addValue().

void QMetaSequence::removeValueAtBegin(void *container) const

Supprime une valeur au début de container si possible. Si canRemoveValueAtBegin() renvoie false, la valeur n'est pas supprimée.

Voir aussi canRemoveValueAtBegin(), isSortable() et addValueAtBegin().

void QMetaSequence::removeValueAtEnd(void *container) const

Supprime une valeur à la fin de container si possible. Si canRemoveValueAtEnd() renvoie false, la valeur n'est pas supprimée.

Voir aussi canRemoveValueAtEnd(), isSortable() et addValueAtEnd().

void QMetaSequence::setValueAtIndex(void *container, qsizetype index, const void *value) const

Remplace la valeur de index dans container en utilisant value passé en paramètre si cela est possible.

Voir aussi valueAtIndex() et canSetValueAtIndex().

void QMetaSequence::setValueAtIterator(const void *iterator, const void *value) const

Écrit value dans la valeur indiquée par le non-const iterator, si possible.

Voir aussi valueAtIterator(), canSetValueAtIterator(), begin() et end().

void QMetaSequence::valueAtConstIterator(const void *iterator, void *result) const

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

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

void QMetaSequence::valueAtIndex(const void *container, qsizetype index, void *result) const

Récupère la valeur de index dans container et la place dans l'emplacement mémoire indiqué par result, si cela est possible.

Voir aussi setValueAtIndex() et canGetValueAtIndex().

void QMetaSequence::valueAtIterator(const void *iterator, void *result) const

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

Voir aussi setValueAtIterator(), canGetValueAtIterator(), begin() et end().

QMetaType QMetaSequence::valueMetaType() const

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

Non-membres apparentés

[noexcept, since 6.0] bool operator!=(const QMetaSequence &lhs, const QMetaSequence &rhs)

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

Cette fonction a été introduite dans Qt 6.0.

[noexcept, since 6.0] bool operator==(const QMetaSequence &lhs, const QMetaSequence &rhs)

Renvoie true si le QMetaSequence lhs représente le même type de conteneur que le QMetaSequence rhs , sinon renvoie false.

Cette fonction a été introduite dans Qt 6.0.

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