QMetaSequence Class

Die Klasse QMetaSequence ermöglicht den typgelöschten Zugriff auf sequentielle Container. Mehr...

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

Diese Klasse ist gleichwertig vergleichbar.

Öffentliche Funktionen

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)

Detaillierte Beschreibung

Die Klasse bietet eine Reihe von primitiven Containeroperationen, die void* als Operanden verwenden. Auf diese Weise können Sie einen generischen Container, der von einer Variante abgerufen wird, manipulieren, ohne seinen Typ zu kennen.

Die void*-Argumente für die verschiedenen Methoden werden in der Regel durch die Verwendung von QVariant des jeweiligen Container- oder Werttyps und den Aufruf der Methoden QVariant::data() oder QVariant::constData() erzeugt. Sie können jedoch auch einfache Zeiger auf Objekte des Container- oder Wertetyps übergeben.

Die Invalidierung von Iteratoren folgt den Regeln, die von den zugrunde liegenden Containern vorgegeben werden, und wird nicht in der API ausgedrückt. Daher sollten bei einem wirklich generischen Container alle Iteratoren nach jedem Schreibvorgang als ungültig betrachtet werden.

Dokumentation der Mitgliedsfunktionen

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

Fügt value zu container hinzu, wenn möglich. Wenn canAddValue() false zurückgibt, wird value nicht hinzugefügt. Andernfalls, wenn canAddValueAtEnd() true zurückgibt, wird value am Ende von container hinzugefügt. Andernfalls, wenn canAddValueAtBegin() true zurückgibt, wird value am Anfang des Containers hinzugefügt. Andernfalls wird der Wert an einer nicht spezifizierten 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 value an den Anfang von container an, wenn möglich. Wenn canAddValueAtBegin() 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 value an das Ende von container an, wenn möglich. Wenn canAddValueAtEnd() false zurückgibt, wird value nicht hinzugefügt.

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

bool QMetaSequence::canAddValue() const

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

Siehe auch addValue() und isSortable().

bool QMetaSequence::canAddValueAtBegin() const

Gibt true zurück, wenn mit addValue() hinzugefügte Werte an den Anfang des Containers gestellt werden können, andernfalls false.

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 gibt es false zurück.

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-Konst-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, auf den ein const-Iterator zeigt, abrufen kann, andernfalls false.

Siehe auch hasConstIterator() und valueAtConstIterator().

bool QMetaSequence::canGetValueAtIndex() const

Gibt true zurück, wenn Werte aus dem Container nach Index 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-Konst-Iterator zeigt, andernfalls false.

Siehe auch hasIterator() und valueAtIterator().

bool QMetaSequence::canInsertValueAtIterator() const

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

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 vom Anfang des Containers mit removeValue() entfernt werden können, andernfalls wird false zurückgegeben.

Siehe auch removeValueAtBegin() und canRemoveValueAtEnd().

bool QMetaSequence::canRemoveValueAtEnd() const

Gibt true zurück, wenn Werte vom Ende des Containers mit removeValue() 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 nach Index in den Container geschrieben werden kann, andernfalls false.

Siehe auch setValueAtIndex().

bool QMetaSequence::canSetValueAtIterator() const

Gibt true zurück, wenn der zugrundeliegende Container in den Wert schreiben kann, auf den ein Nicht-Konst-Iterator zeigt, andernfalls false.

Siehe auch hasIterator() und setValueAtIterator().

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

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

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

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

Löscht den Wert, auf den die Nicht-Konstante iterator zeigt, aus container, sofern möglich.

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 Template-Parameter 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, wenn möglich, unter Berücksichtigung der Nicht-Konstante 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 zeigt. Andernfalls wird value an einer nicht spezifizierten Stelle oder gar nicht eingefügt. In letzterem Fall wird iterator als Hinweis genommen. Wenn er auf die richtige Stelle für value zeigt, kann die Operation schneller sein als 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 bestimmten Stelle platziert werden. Das Einfügen in einen sortierbaren Container oder das Hinzufügen zu einem sortierbaren Container wird immer erfolgreich sein. Das Einfügen in einen unsortierbaren Container oder das Hinzufügen zu einem solchen ist möglicherweise nicht erfolgreich, z. B. wenn der Container ein QSet ist, der den einzufügenden Wert bereits enthält.

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

void QMetaSequence::removeValue(void *container) const

Entfernt einen Wert aus der Datei container, wenn möglich. Wenn canRemoveValue() false zurückgibt, wird kein Wert entfernt. Andernfalls, wenn canRemoveValueAtEnd() true zurückgibt, wird der letzte Wert in container entfernt. Andernfalls, wenn canRemoveValueAtBegin() true zurückgibt, wird der erste Wert in container entfernt. Andernfalls wird ein nicht spezifizierter Wert oder nichts entfernt.

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

void QMetaSequence::removeValueAtBegin(void *container) const

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

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

void QMetaSequence::removeValueAtEnd(void *container) const

Entfernt einen Wert vom Ende von container, wenn möglich. Wenn canRemoveValueAtEnd() 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 in 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 value in den Wert, auf den die Nicht-Konstante iterator zeigt, falls möglich.

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

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

Ruft den Wert ab, auf den die Konstante iterator zeigt, und speichert ihn an der Speicherstelle, auf die result zeigt, falls möglich.

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

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

Ruft den Wert index in container ab und setzt ihn an die Speicherstelle, auf die result zeigt, 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 die Nicht-Konstante iterator zeigt, und speichert ihn an der Speicherstelle, auf die result zeigt, falls möglich.

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 repräsentiert 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 repräsentiert wie QMetaSequence rhs , andernfalls false.

Diese Funktion wurde in Qt 6.0 eingeführt.

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