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: |
QMetaContainer-Vergleiche
| Kategorie | Vergleichbare Typen |
|---|---|
| Gleichheit | QMetaContainer |
Ö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.
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.
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.
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.