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
| Kategorie | Vergleichbare Typen |
|---|---|
| Gleichheit | QMetaSequence |
Ö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() |
Zugehörige Nicht-Mitglieder
(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.