Auf dieser Seite

QMetaSequence Class

Die Klasse „QMetaSequence“ ermöglicht den typunabhängigen Zugriff auf sequenzielle Container. Mehr dazu...

Header: #include <QMetaSequence>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Seit: Qt 6.0
Erbt von: QMetaContainer

Vergleiche mit QMetaSequence

KategorieVergleichbare Typen
GleichheitQMetaSequence

Öffentliche Typen

(since 6.11) class Iterable

Öffentliche Funktionen

QMetaSequence()
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

Statische öffentliche Mitglieder

(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)

Ausführliche Beschreibung

Die Klasse stellt eine Reihe von primitiven Containeroperationen bereit, die `void*` als Operanden verwenden. Auf diese Weise können Sie einen generischen Container bearbeiten, der aus einem `Variant` abgerufen wurde, ohne dessen Typ zu kennen.

Die `void*`-Argumente für die verschiedenen Methoden werden in der Regel erstellt, indem man eine ` QVariant ` des jeweiligen Container- oder Werttyps verwendet und deren Methoden ` QVariant::data()` oder ` QVariant::constData()` aufruft. Sie können jedoch auch einfache Zeiger auf Objekte des Container- oder Werttyps übergeben.

Die Ungültigmachung von Iteratoren folgt den von den zugrunde liegenden Containern vorgegebenen Regeln und wird in der API nicht ausdrücklich geregelt. Daher sollten bei einem wirklich generischen Container alle Iteratoren nach jeder Schreiboperation als ungültig betrachtet werden.

Dokumentation der Mitgliedsfunktionen

[constexpr noexcept default] QMetaSequence::QMetaSequence()

Erstellt standardmäßig eine Instanz von ` QMetaSequence`.

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

Fügt „ value “ nach Möglichkeit zur „ container “ hinzu. Wenn „ canAddValue()“ „ false “ zurückgibt, wird „ value “ nicht hinzugefügt. Andernfalls, wenn „ canAddValueAtEnd()“ „ true “ zurückgibt, wird „ value “ am Ende der „ container “ angefügt. Andernfalls, wenn „ canAddValueAtBegin()“ „ true “ zurückgibt, wird „ value “ am Anfang des Containers angefügt. Andernfalls wird der Wert an einer nicht näher bestimmten Stelle oder gar nicht hinzugefügt. Letzteres ist der Fall beim Hinzufügen von Werten zu einem ungeordneten Container, zum Beispiel QSet.

Siehe auch canAddValue(), canAddValueAtBegin(), canAddValueAtEnd(), isSortable() und removeValue().

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

Fügt, sofern möglich, „ value “ am Anfang von „ container “ hinzu. Wenn „ canAddValueAtBegin()“ den Wert „ false “ zurückgibt, wird „ value “ nicht hinzugefügt.

Siehe auch canAddValueAtBegin(), isSortable() und removeValueAtBegin().

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

Fügt, sofern möglich, „ value “ an das Ende von „ container “ an. Wenn „ canAddValueAtEnd()“ den Wert „ false “ zurückgibt, wird „ value “ nicht angehängt.

Siehe auch canAddValueAtEnd(), isSortable() und removeValueAtEnd().

bool QMetaSequence::canAddValue() const

Gibt „ true “ zurück, wenn Werte zum Container hinzugefügt werden können, andernfalls „ false “.

Siehe auch addValue() und isSortable().

bool QMetaSequence::canAddValueAtBegin() const

Gibt „ true “ zurück, wenn die mit „ addValue()“ hinzugefügten Werte am Anfang des Containers platziert werden können; andernfalls wird „ false “ zurückgegeben.

Siehe auch addValueAtBegin() und canAddValueAtEnd().

bool QMetaSequence::canAddValueAtEnd() const

Gibt „ true “ zurück, wenn die mit ` addValue()` hinzugefügten Werte am Ende des Containers platziert werden können; andernfalls wird „ false “ zurückgegeben.

Siehe auch addValueAtEnd() und canAddValueAtBegin().

bool QMetaSequence::canEraseRangeAtIterator() const

Gibt „ true “ zurück, wenn ein Bereich zwischen zwei Iteratoren aus dem Container gelöscht werden kann, andernfalls „ false “.

bool QMetaSequence::canEraseValueAtIterator() const

Gibt „ true “ zurück, wenn der Wert, auf den ein nicht-konstanter Iterator zeigt, gelöscht werden kann; andernfalls „ false “.

Siehe auch hasIterator() und eraseValueAtIterator().

bool QMetaSequence::canGetValueAtConstIterator() const

Gibt „ true “ zurück, wenn der zugrunde liegende Container den Wert abrufen kann, auf den ein const-Iterator verweist; andernfalls „ false “.

Siehe auch hasConstIterator() und valueAtConstIterator().

bool QMetaSequence::canGetValueAtIndex() const

Gibt „ true “ zurück, wenn Werte anhand ihres Indexes aus dem Container abgerufen werden können, andernfalls „ false “.

Siehe auch valueAtIndex().

bool QMetaSequence::canGetValueAtIterator() const

Gibt „ true “ zurück, wenn der zugrunde liegende Container den Wert abrufen kann, auf den ein nicht-konstanter Iterator verweist; andernfalls „ false “.

Siehe auch hasIterator() und valueAtIterator().

bool QMetaSequence::canInsertValueAtIterator() const

Gibt ` true ` zurück, wenn der zugrunde liegende Container einen neuen Wert einfügen kann, wobei die Position berücksichtigt wird, auf die ein nicht-konstanter Iterator zeigt.

Siehe auch ` hasIterator()` und ` insertValueAtIterator()`.

bool QMetaSequence::canRemoveValue() const

Gibt „ true “ zurück, wenn Werte aus dem Container entfernt werden können, andernfalls „ false “.

Siehe auch removeValue() und isSortable().

bool QMetaSequence::canRemoveValueAtBegin() const

Gibt „ true “ zurück, wenn Werte mit „ removeValue()“ vom Anfang des Containers entfernt werden können, andernfalls wird „ false “ zurückgegeben.

Siehe auch removeValueAtBegin() und canRemoveValueAtEnd().

bool QMetaSequence::canRemoveValueAtEnd() const

Gibt „ true “ zurück, wenn Werte mithilfe von „ removeValue()“ vom Ende des Containers entfernt werden können; andernfalls wird „ false “ zurückgegeben.

Siehe auch removeValueAtEnd() und canRemoveValueAtBegin().

bool QMetaSequence::canSetValueAtIndex() const

Gibt „ true “ zurück, wenn ein Wert anhand des Index in den Container geschrieben werden kann, andernfalls „ false “.

Siehe auch setValueAtIndex().

bool QMetaSequence::canSetValueAtIterator() const

Gibt „ true “ zurück, wenn der zugrunde liegende Container in den Wert schreiben kann, auf den ein nicht-konstanter Iterator zeigt; andernfalls „ false “.

Siehe auch hasIterator() und setValueAtIterator().

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

Löscht, sofern möglich, den Wertebereich zwischen den Iteratoren iterator1 und iterator2 aus dem container.

Siehe auch canEraseValueAtIterator(), begin() und end().

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

Löscht den Wert, auf den der nicht-konstante iterator verweist, aus dem container, sofern dies möglich ist.

Siehe auch „ canEraseValueAtIterator()“, „ begin()“ und „ end()“.

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

Gibt die „ QMetaSequence “ zurück, die dem als Vorlagenparameter angegebenen Typ entspricht.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Fügt „ value “ in „ container “ ein, sofern möglich, unter Berücksichtigung des nicht-konstanten „ iterator “. Wenn „ canInsertValueAtIterator()“ „ false “ zurückgibt, wird „ value “ nicht eingefügt. Andernfalls, wenn „ isSortable()“ „ true “ zurückgibt, wird der Wert vor dem Wert eingefügt, auf den „ iterator “ verweist. Andernfalls wird „ value “ an einer nicht näher bestimmten Stelle oder gar nicht eingefügt. Im letzteren Fall wird ` iterator ` als Hinweis verwendet. Wenn es auf die richtige Stelle für ` value` verweist, kann der Vorgang schneller sein als ein ` addValue()` ohne Iterator.

Siehe auch canInsertValueAtIterator(), isSortable(), begin() und end().

bool QMetaSequence::isSortable() const

Gibt „ true “ zurück, wenn der zugrunde liegende Container sortierbar ist, andernfalls „ false “. Ein Container gilt als sortierbar, wenn die ihm hinzugefügten Werte an einer definierten Position platziert werden. Das Einfügen in oder Hinzufügen zu einem sortierbaren Container gelingt immer. Das Einfügen in oder Hinzufügen zu einem nicht sortierbaren Container kann fehlschlagen, beispielsweise wenn es sich bei dem Container um einen „ QSet “ handelt, der den einzufügenden Wert bereits enthält.

Siehe auch addValue(), insertValueAtIterator(), canAddValueAtBegin(), canAddValueAtEnd(), canRemoveValueAtBegin() und canRemoveValueAtEnd().

void QMetaSequence::removeValue(void *container) const

Entfernt, sofern möglich, einen Wert aus dem „ container “. Wenn „ canRemoveValue()“ den Wert „ false “ zurückgibt, wird kein Wert entfernt. Andernfalls wird, wenn „ canRemoveValueAtEnd()“ den Wert „ true “ zurückgibt, der letzte Wert im „ container “ entfernt. Andernfalls wird, wenn „ canRemoveValueAtBegin()“ den Wert „ true “ zurückgibt, der erste Wert im „ container “ entfernt. Andernfalls wird ein nicht näher bezeichneter Wert oder gar nichts entfernt.

Siehe auch canRemoveValue(), canRemoveValueAtBegin(), canRemoveValueAtEnd(), isSortable() und addValue().

void QMetaSequence::removeValueAtBegin(void *container) const

Entfernt, sofern möglich, einen Wert am Anfang von container. Wenn canRemoveValueAtBegin() den Wert false zurückgibt, wird der Wert nicht entfernt.

Siehe auch canRemoveValueAtBegin(), isSortable() und addValueAtBegin().

void QMetaSequence::removeValueAtEnd(void *container) const

Entfernt, sofern möglich, einen Wert vom Ende von container. Wenn canRemoveValueAtEnd() den Wert false zurückgibt, wird der Wert nicht entfernt.

Siehe auch „ canRemoveValueAtEnd()“, „ isSortable()“ und „ addValueAtEnd()“.

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

Überschreibt den Wert unter index im container mit dem als Parameter übergebenen value, sofern dies möglich ist.

Siehe auch valueAtIndex() und canSetValueAtIndex().

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

Schreibt, sofern möglich, „ value “ in den Wert, auf den der nicht-konstante Zeiger ` iterator` zeigt.

Siehe auch valueAtIterator(), canSetValueAtIterator(), begin() und end().

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

Ruft den Wert ab, auf den der Konstante „ iterator “ verweist, und speichert ihn, sofern möglich, an der Speicheradresse, auf die „ result “ verweist.

Siehe auch canGetValueAtConstIterator(), constBegin() und constEnd().

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

Ruft den Wert unter index im container ab und speichert ihn an der Speicheradresse, auf die result verweist, sofern dies möglich ist.

Siehe auch setValueAtIndex() und canGetValueAtIndex().

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

Ruft den Wert ab, auf den das nicht-konstante ` iterator ` verweist, und speichert ihn, sofern möglich, an der Speicheradresse, auf die ` result` verweist.

Siehe auch setValueAtIterator(), canGetValueAtIterator(), begin() und end().

QMetaType QMetaSequence::valueMetaType() const

Gibt den Metatyp für die im Container gespeicherten Werte zurück.

Verwandte Nicht-Mitglieder

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

Gibt „ true “ zurück, wenn „ QMetaSequence “ lhs einen anderen Containertyp darstellt als „ QMetaSequence “ rhs; andernfalls wird „ false “ zurückgegeben.

Diese Funktion wurde in Qt 6.0 eingeführt.

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

Gibt „ true “ zurück, wenn „ QMetaSequence “ lhs denselben Containertyp darstellt wie „ QMetaSequence “ rhs; andernfalls wird „ false “ zurückgegeben.

Diese Funktion wurde in Qt 6.0 eingeführt.

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