Auf dieser Seite

QMetaContainer Class

Die Klasse „QMetaContainer“ bietet allgemeine Funktionen für sequenzielle und assoziative Container. Mehr...

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

QMetaAssociation und QMetaSequence

QMetaContainer-Vergleiche

KategorieVergleichbare Typen
GleichheitQMetaContainer

Öffentliche Funktionen

QMetaContainer()
void advanceConstIterator(void *iterator, qsizetype step) const
void advanceIterator(void *iterator, qsizetype step) const
void *begin(void *container) const
bool canClear() const
void clear(void *container) const
bool compareConstIterator(const void *i, const void *j) const
bool compareIterator(const void *i, const void *j) const
void *constBegin(const void *container) const
void *constEnd(const void *container) const
void copyConstIterator(void *target, const void *source) const
void copyIterator(void *target, const void *source) const
void destroyConstIterator(const void *iterator) const
void destroyIterator(const void *iterator) const
qsizetype diffConstIterator(const void *i, const void *j) const
qsizetype diffIterator(const void *i, const void *j) const
void *end(void *container) const
bool hasBidirectionalIterator() const
bool hasConstIterator() const
bool hasForwardIterator() const
bool hasInputIterator() const
bool hasIterator() const
bool hasRandomAccessIterator() const
bool hasSize() const
qsizetype size(const void *container) const

Ausführliche Beschreibung

QMetaContainer ist Teil des Metatyp-Systems von Qt, das zur Laufzeit einen typunabhängigen Zugriff auf containerähnliche Typen ermöglicht.

Er dient als gemeinsame Basis für den generischen Zugriff auf Eigenschaften von Containern, wie z. B. Größe, Iteration und Löschvorgänge, ohne den tatsächlichen Containertyp zu kennen.

Abgeleitete Klassen wie beispielsweise ` QMetaSequence` bieten spezialisierte Schnittstellen für sequenzielle Container.

Dokumentation der Mitgliedsfunktionen

[constexpr noexcept default] QMetaContainer::QMetaContainer()

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

void QMetaContainer::advanceConstIterator(void *iterator, qsizetype step) const

Verschiebt die Konstante „ iterator “ um „ step “ Schritte weiter. Ist „ step “ negativ, wird „ iterator “ rückwärts in Richtung des Anfangs des Containers verschoben. Das Verhalten bei negativen Werten von „ step “ ist nicht spezifiziert, wenn „ hasBidirectionalIterator()“ den Wert „false“ zurückgibt.

Siehe auch „ constBegin()“ und „ constEnd()“.

void QMetaContainer::advanceIterator(void *iterator, qsizetype step) const

Verschiebt den nicht-konstanten „ iterator “ um „ step “ Schritte weiter. Ist „ step “ negativ, wird der „ iterator “ rückwärts in Richtung des Anfangs des Containers verschoben. Das Verhalten bei negativen Werten von „ step “ ist nicht spezifiziert, wenn „ hasBidirectionalIterator()“ „false“ zurückgibt.

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

void *QMetaContainer::begin(void *container) const

Erzeugt und gibt einen nicht-konstanten Iterator zurück, der auf den Anfang von ` container` zeigt. Der Iterator wird mit `new` auf dem Heap zugewiesen. Er muss schließlich mit ` destroyIterator ` freigegeben werden, um den Speicher wieder freizugeben.

Gibt „ nullptr “ zurück, wenn der Container keine nicht-konstanten Iteratoren bereitstellt.

Siehe auch „ end()“, „ constBegin()“, „ constEnd()“ und „ destroyIterator()“.

bool QMetaContainer::canClear() const

Gibt „ true “ zurück, wenn der Container geleert werden kann, andernfalls „ false “.

Siehe auch clear().

void QMetaContainer::clear(void *container) const

Löscht die angegebene „ container “, sofern dies möglich ist.

Siehe auch canClear().

bool QMetaContainer::compareConstIterator(const void *i, const void *j) const

Gibt „ true “ zurück, wenn die konstanten Iteratoren „ i “ und „ j “ auf denselben Wert in dem Container verweisen, über den sie iterieren; andernfalls wird „ false “ zurückgegeben.

Siehe auch constBegin() und constEnd().

bool QMetaContainer::compareIterator(const void *i, const void *j) const

Gibt „ true “ zurück, wenn die nicht-konstanten Iteratoren „ i “ und „ j “ auf denselben Wert in dem Container verweisen, über den sie iterieren; andernfalls wird „ false “ zurückgegeben.

Siehe auch begin() und end().

void *QMetaContainer::constBegin(const void *container) const

Erstellt und gibt einen const-Iterator zurück, der auf den Anfang von ` container` zeigt. Der Iterator wird mithilfe von `new` auf dem Heap zugewiesen. Er muss schließlich mit ` destroyConstIterator ` freigegeben werden, um den Speicher wieder freizugeben.

Gibt „ nullptr “ zurück, wenn der Container keine konstanten Iteratoren bereitstellt.

Siehe auch „ constEnd()“, „ begin()“, „ end()“ und „ destroyConstIterator()“.

void *QMetaContainer::constEnd(const void *container) const

Erstellt und gibt einen const-Iterator zurück, der auf das Ende von ` container` zeigt. Der Iterator wird mithilfe von `new` im Heap zugewiesen. Er muss schließlich mit ` destroyConstIterator ` freigegeben werden, um den Speicherplatz zurückzugewinnen.

Gibt „ nullptr “ zurück, wenn der Container keine const-Iteratoren bereitstellt.

Siehe auch constBegin(), begin(), end() und destroyConstIterator().

void QMetaContainer::copyConstIterator(void *target, const void *source) const

Kopiert den const-Iterator source in den const-Iterator target. Anschließend gibt compareConstIterator(target, source) true zurück.

Siehe auch constBegin() und constEnd().

void QMetaContainer::copyIterator(void *target, const void *source) const

Kopiert den nicht-konstanten Iterator source in den nicht-konstanten Iterator target. Anschließend gibt compareIterator(target, source) true zurück.

Siehe auch begin() und end().

void QMetaContainer::destroyConstIterator(const void *iterator) const

Löscht eine zuvor mit constBegin() oder constEnd() erstellte Konstante iterator.

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

void QMetaContainer::destroyIterator(const void *iterator) const

Löscht ein nicht-konstantes „ iterator “, das zuvor mit „ begin()“ oder „ end()“ erstellt wurde.

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

qsizetype QMetaContainer::diffConstIterator(const void *i, const void *j) const

Gibt den Abstand zwischen den const-Iteratoren i und j zurück, was dem Ergebnis von i, - und j entspricht. Liegt j näher am Ende des Containers als i, ist der Rückgabewert negativ. Das Verhalten ist in diesem Fall nicht spezifiziert, wenn hasBidirectionalIterator() den Wert „false“ zurückgibt.

Siehe auch constBegin() und constEnd().

qsizetype QMetaContainer::diffIterator(const void *i, const void *j) const

Gibt den Abstand zwischen den nicht-konstanten Iteratoren i und j zurück, was dem Ausdruck i - j entspricht. Liegt j näher am Ende des Containers als i, ist der zurückgegebene Wert negativ. Das Verhalten ist in diesem Fall nicht spezifiziert, wenn hasBidirectionalIterator() den Wert „false“ zurückgibt.

Siehe auch begin() und end().

void *QMetaContainer::end(void *container) const

Erstellt und gibt einen nicht-konstanten Iterator zurück, der auf das Ende von ` container` zeigt. Der Iterator wird mithilfe von `new` auf dem Heap zugewiesen. Er muss schließlich mit ` destroyIterator ` freigegeben werden, um den Speicher wieder freizugeben.

Gibt „ nullptr “ zurück, wenn der Container keine nicht-konstanten Iteratoren bereitstellt.

Siehe auch „ hasIterator()“, „ begin()“, „ constBegin()“, „ constEnd()“ und „ destroyIterator()“.

bool QMetaContainer::hasBidirectionalIterator() const

Gibt ` true ` zurück, wenn der zugrunde liegende Container einen bidirektionalen Iterator oder einen Iterator mit wahlfreiem Zugriff bereitstellt, wie sie durch `std::bidirectional_iterator_tag` bzw. `std::random_access_iterator_tag` definiert sind. Andernfalls wird ` false` zurückgegeben.

QMetaContainer Geht davon aus, dass const- und nicht-const-Iteratoren für denselben Container dieselben Iterator-Eigenschaften aufweisen.

bool QMetaContainer::hasConstIterator() const

Gibt „ true “ zurück, wenn der zugrunde liegende Container einen const-Iterator bereitstellt, andernfalls „ false “.

Siehe auch „ constBegin()“, „ constEnd()“, „ destroyConstIterator()“, „ compareConstIterator()“, „ diffConstIterator()“, „ advanceConstIterator()“ und „ copyConstIterator()“.

bool QMetaContainer::hasForwardIterator() const

Gibt „ true “ zurück, wenn der zugrunde liegende Container mindestens einen Vorwärtsiterator gemäß der Definition von „std::forward_iterator_tag“ bereitstellt; andernfalls wird „ false “ zurückgegeben. Bidirektionale Iteratoren und Iteratoren mit wahlfreiem Zugriff sind Spezialisierungen von Vorwärtsiteratoren. Diese Methode gibt außerdem „ true “ zurück, wenn der Container einen dieser Iteratoren bereitstellt.

QMetaContainer Es wird davon ausgegangen, dass const- und nicht-const-Iteratoren für denselben Container dieselben Iterator-Eigenschaften aufweisen.

bool QMetaContainer::hasInputIterator() const

Gibt „ true “ zurück, wenn der zugrunde liegende Container mindestens einen Eingabeiterator gemäß der Definition von „std::input_iterator_tag“ bereitstellt; andernfalls wird „ false “ zurückgegeben. Vorwärts-, bidirektionale und Zufallszugriffsiteratoren sind Spezialisierungen von Eingabeiteratoren. Diese Methode gibt außerdem „ true “ zurück, wenn der Container einen dieser Iteratoren bereitstellt.

QMetaContainer Es wird davon ausgegangen, dass const- und nicht-const-Iteratoren für denselben Container dieselben Iterator-Eigenschaften aufweisen.

bool QMetaContainer::hasIterator() const

Gibt „ true “ zurück, wenn der zugrunde liegende Container einen nicht-konstanten Iterator bereitstellt, andernfalls „ false “.

Siehe auch begin(), end(), destroyIterator(), compareIterator(), diffIterator(), advanceIterator() und copyIterator().

bool QMetaContainer::hasRandomAccessIterator() const

Gibt „ true “ zurück, wenn der zugrunde liegende Container einen Iterator mit wahlfreiem Zugriff gemäß der Definition von „std::random_access_iterator_tag“ bereitstellt; andernfalls wird „ false “ zurückgegeben.

QMetaContainer Geht davon aus, dass const- und nicht-const-Iteratoren für denselben Container dieselben Iterator-Eigenschaften aufweisen.

bool QMetaContainer::hasSize() const

Gibt „ true “ zurück, wenn die Größe des Containers abgefragt werden kann, andernfalls „ false “.

Siehe auch size().

qsizetype QMetaContainer::size(const void *container) const

Gibt die Anzahl der Werte im angegebenen „ container “ zurück, sofern dessen Größe abgefragt werden kann. Andernfalls wird „ -1 “ zurückgegeben.

Siehe auch ` hasSize()`.

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