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() |
Verwandte Nicht-Mitglieder
(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.