QList Class
template <typename T> class QListDie Klasse QList ist eine Vorlagenklasse, die ein dynamisches Array bereitstellt. Mehr...
Kopfzeile: | #include <QList> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Vererbt von: |
- Liste aller Mitglieder, einschließlich vererbter Mitglieder
- Verwerfliche Mitglieder
- QList ist Teil von Implicitly Shared Classes.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Typen
Öffentliche Funktionen
QList() | |
QList(qsizetype size) | |
QList(std::initializer_list<T> args) | |
QList(InputIterator first, InputIterator last) | |
QList(qsizetype size, QList<T>::parameter_type value) | |
(since 6.8) | QList(qsizetype größe, Qt::Initialisierung) |
QList(const QList<T> &other) | |
QList(QList<T> &&andere) | |
~QList() | |
void | append(QList<T>::parameter_type wert) |
(since 6.0) void | append(QList<T> &&Wert) |
void | append(QList<T>::rvalue_ref Wert) |
void | append(const QList<T> &value) |
(since 6.6) QList<T> & | assign(std::initializer_list<T> l) |
(since 6.6) QList<T> & | assign(InputIterator erster, InputIterator letzter) |
(since 6.6) QList<T> & | assign(qsizetype n, QList<T>::parameter_type t) |
QList<T>::const_reference | at(qsizetype i) const |
QList<T>::referenz | back() |
QList<T>::const_reference | back() const |
QList<T>::Iterator | begin() |
QList<T>::const_iterator | begin() const |
qsizetype | capacity() const |
QList<T>::const_iterator | cbegin() const |
QList<T>::const_iterator | cend() const |
void | clear() |
QList<T>::const_iterator | constBegin() const |
QList<T>::const_pointer | constData() const |
QList<T>::const_iterator | constEnd() const |
const T & | constFirst() const |
const T & | constLast() const |
bool | contains(const AT &Wert) const |
qsizetype | count(const AT &Wert) const |
qsizetype | count() const |
QList<T>::const_reverse_iterator | crbegin() const |
QList<T>::const_reverse_iterator | crend() const |
QList<T>::pointer | data() |
QList<T>::const_pointer | data() const |
QList<T>::Iterator | emplace(qsizetype i, Args &&... args) |
QList<T>::iterator | emplace(QList<T>::const_iterator before, Args &&... args) |
QList<T>::reference | emplaceBack(Args &&... args) |
QList<T>::referenz | emplace_back(Args &&... args) |
bool | empty() const |
QList<T>::iterator | end() |
QList<T>::const_iterator | end() const |
bool | endsWith(QList<T>::parameter_type wert) const |
QList<T>::iterator | erase(QList<T>::const_iterator pos) |
QList<T>::iterator | erase(QList<T>::const_iterator begin, QList<T>::const_iterator end) |
QList<T> & | fill(QList<T>::parameter_type value, qsizetype size = -1) |
T & | first() |
(since 6.0) QList<T> | first(qsizetype n) const |
const T & | first() const |
QList<T>::Referenz | front() |
QList<T>::const_reference | front() const |
qsizetype | indexOf(const AT &value, qsizetype from = 0) const |
QList<T>::iterator | insert(qsizetype i, QList<T>::parameter_type wert) |
QList<T>::iterator | insert(qsizetype i, QList<T>::rvalue_ref Wert) |
QList<T>::iterator | insert(QList<T>::const_iterator before, qsizetype count, QList<T>::parameter_type value) |
QList<T>::iterator | insert(QList<T>::const_iterator vorher, QList<T>::parameter_type wert) |
QList<T>::iterator | insert(QList<T>::const_iterator vorher, QList<T>::rvalue_ref wert) |
QList<T>::iterator | insert(qsizetype i, qsizetype count, QList<T>::parameter_type value) |
bool | isEmpty() const |
T & | last() |
(since 6.0) QList<T> | last(qsizetype n) const |
const T & | last() const |
qsizetype | lastIndexOf(const AT &Wert, qsizetype von = -1) const |
qsizetype | length() const |
(since 6.8) qsizetype | max_size() const |
QList<T> | mid(qsizetype pos, qsizetype length = -1) const |
void | move(qsizetype von, qsizetype bis) |
void | pop_back() |
void | pop_front() |
void | prepend(QList<T>::parameter_type wert) |
void | prepend(QList<T>::rvalue_ref Wert) |
void | push_back(QList<T>::parameter_type wert) |
void | push_back(QList<T>::rvalue_ref Wert) |
void | push_front(QList<T>::parameter_type wert) |
void | push_front(QList<T>::rvalue_ref Wert) |
QList<T>::reverse_iterator | rbegin() |
QList<T>::const_reverse_iterator | rbegin() const |
void | remove(qsizetype i, qsizetype n = 1) |
qsizetype | removeAll(const AT &t) |
void | removeAt(qsizetype i) |
void | removeFirst() |
(since 6.1) qsizetype | removeIf(Prädikat pred) |
void | removeLast() |
bool | removeOne(const AT &t) |
QList<T>::reverse_iterator | rend() |
QList<T>::const_reverse_iterator | rend() const |
void | replace(qsizetype i, QList<T>::parameter_type wert) |
void | replace(qsizetype i, QList<T>::rvalue_ref Wert) |
void | reserve(qsizetype Größe) |
(since 6.0) void | resize(qsizetype Größe) |
(since 6.0) void | resize(qsizetype Größe, QList<T>::parameter_type c) |
(since 6.8) void | resizeForOverwrite(qsizetype Größe) |
void | shrink_to_fit() |
qsizetype | size() const |
(since 6.0) QList<T> | sliced(qsizetype pos, qsizetype n) const |
(since 6.0) QList<T> | sliced(qsizetype pos) const |
void | squeeze() |
bool | startsWith(QList<T>::parameter_type wert) const |
void | swap(QList<T> &andere) |
void | swapItemsAt(qsizetype i, qsizetype j) |
T | takeAt(qsizetype i) |
QList<T>::value_type | takeFirst() |
QList<T>::value_type | takeLast() |
T | value(qsizetype i) const |
T | value(qsizetype i, QList<T>::parameter_type defaultValue) const |
bool | operator!=(const QList<T> &other) const |
QList<T> | operator+(QList<T> &&andere) && |
QList<T> | operator+(const QList<T> &andere) && |
QList<T> | operator+(QList<T> &&andere) const & |
QList<T> | operator+(const QList<T> &andere) const & |
QList<T> & | operator+=(const QList<T> &andere) |
(since 6.0) QList<T> & | operator+=(QList<T> &&andere) |
QList<T> & | operator+=(QList<T>::parameter_type Wert) |
QList<T> & | operator+=(QList<T>::rvalue_ref Wert) |
bool | operator<(const QList<T> &other) const |
QList<T> & | operator<<(QList<T>::parameter_type Wert) |
QList<T> & | operator<<(const QList<T> &andere) |
(since 6.0) QList<T> & | operator<<(QList<T> &&andere) |
QList<T> & | operator<<(QList<T>::rvalue_ref Wert) |
bool | operator<=(const QList<T> &andere) const |
QList<T> & | operator=(QList<T> &&andere) |
QList<T> & | operator=(const QList<T> &andere) |
QList<T> & | operator=(std::initializer_list<T> args) |
bool | operator==(const QList<T> &andere) const |
bool | operator>(const QList<T> &andere) const |
bool | operator>=(const QList<T> &andere) const |
QList<T>::Referenz | operator[](qsizetype i) |
QList<T>::const_reference | operator[](qsizetype i) const |
Statische öffentliche Mitglieder
(since 6.8) qsizetype | maxSize() |
Verwandte Nicht-Mitglieder
(since 6.1) qsizetype | erase(QList<T> &list, const AT &t) |
(since 6.1) qsizetype | erase_if(QList<T> &list, Predicate pred) |
size_t | qHash(const QList<T> &key, size_t seed = 0) |
QDataStream & | operator<<(QDataStream &out, const QList<T> &list) |
QDataStream & | operator>>(QDataStream &in, QList<T> &list) |
Detaillierte Beschreibung
QList<T> ist eine der generischen Container-Klassen von Qt. Sie speichert ihre Elemente in benachbarten Speicherplätzen und bietet schnellen indexbasierten Zugriff. QVector<T> war in Qt 5 eine andere Klasse, ist jetzt aber ein einfacher Alias zu QList.
QList<T> und QVarLengthArray<T> bieten ähnliche APIs und Funktionen. Sie sind oft austauschbar, aber es gibt Leistungseinbußen. Hier ist ein Überblick über die Anwendungsfälle:
- QList sollte standardmäßig Ihre erste Wahl sein.
- QVarLengthArray bietet ein Array, das Platz auf dem Stack reserviert, aber bei Bedarf dynamisch auf dem Heap wachsen kann. Es ist gut geeignet für kurzlebige Container, die normalerweise klein sind.
- Wenn Sie eine echte verknüpfte Liste benötigen, die eine konstante Zeit für Einfügungen in der Mitte der Liste garantiert und Iteratoren für Elemente anstelle von Indizes verwendet, verwenden Sie std::list.
Hinweis: QList und QVarLengthArray garantieren beide ein C-kompatibles Array-Layout.
Hinweis: QList in Qt 5 hatte nicht immer ein C-kompatibles Array-Layout und wir haben oft empfohlen, stattdessen QVector zu verwenden, um eine bessere Vorhersagbarkeit zu erreichen. Dies ist in Qt 6 nicht mehr der Fall, wo beide Klassen nun eine gemeinsame Implementierung haben und austauschbar verwendet werden können.
Hier ist ein Beispiel für eine QList, die Ganzzahlen speichert, und eine QList, die QString Werte speichert:
QList speichert seine Elemente in einem Array mit kontinuierlichem Speicher. Normalerweise werden Listen mit einer Anfangsgröße erstellt. Der folgende Code erstellt zum Beispiel eine QList mit 200 Elementen:
Die Elemente werden automatisch mit einem standardmäßig erstellten Wert initialisiert. Wenn Sie die Liste mit einem anderen Wert initialisieren möchten, übergeben Sie diesen Wert als zweites Argument an den Konstruktor:
Sie können auch jederzeit fill() aufrufen, um die Liste mit einem Wert zu füllen.
QList verwendet 0-basierte Indizes, genau wie C++ Arrays. Um auf das Element an einer bestimmten Indexposition zuzugreifen, können Sie operator[]() verwenden. Bei nicht-konstanten Listen gibt operator[]() eine Referenz auf das Element zurück, die auf der linken Seite einer Zuweisung verwendet werden kann:
if (list[0] == "Liz") list[0] = "Elizabeth";
Für den Nur-Lese-Zugriff ist eine alternative Syntax die Verwendung von at():
for (qsizetype i = 0; i < list.size(); ++i) { if (list.at(i) == "Alfonso") cout << "Found Alfonso at position " << i << endl; }
at() kann schneller sein als operator[](), da es nie zu einer tiefen Kopie kommt.
Eine andere Möglichkeit, auf die in einer QList gespeicherten Daten zuzugreifen, ist der Aufruf von data(). Die Funktion gibt einen Zeiger auf den ersten Eintrag in der Liste zurück. Mit diesem Zeiger können Sie direkt auf die in der Liste gespeicherten Elemente zugreifen und sie verändern. Der Zeiger ist auch nützlich, wenn Sie eine QList an eine Funktion übergeben müssen, die ein einfaches C++-Array akzeptiert.
Wenn Sie alle Vorkommen eines bestimmten Wertes in einer Liste finden wollen, verwenden Sie indexOf() oder lastIndexOf(). Erstere sucht ab einer bestimmten Indexposition vorwärts, letztere rückwärts. Beide geben den Index des übereinstimmenden Elements zurück, wenn sie einen gefunden haben; andernfalls geben sie -1 zurück. Ein Beispiel:
qsizetype i = list.indexOf("Harumi"); if (i != -1) cout << "First occurrence of Harumi is at position " << i << endl;
Wenn Sie einfach prüfen wollen, ob eine Liste einen bestimmten Wert enthält, verwenden Sie contains(). Wenn Sie herausfinden wollen, wie oft ein bestimmter Wert in der Liste vorkommt, verwenden Sie count().
QList bietet folgende grundlegende Funktionen zum Hinzufügen, Verschieben und Entfernen von Elementen: insert(), replace(), remove(), prepend(), append(). Mit Ausnahme von append(), prepend() und replace() können diese Funktionen für große Listen langsam sein(lineare Zeit), da sie das Verschieben vieler Elemente in der Liste um eine Position im Speicher erfordern. Wenn Sie eine Containerklasse wollen, die schnelles Einfügen/Entfernen in der Mitte ermöglicht, verwenden Sie stattdessen std::list.
Im Gegensatz zu einfachen C++-Arrays kann die Größe von QListen jederzeit durch den Aufruf von resize() geändert werden. Wenn die neue Größe größer ist als die alte, muss QList möglicherweise die gesamte Liste neu zuweisen. QList versucht, die Anzahl der Neuzuweisungen zu reduzieren, indem es bis zu doppelt so viel Speicher wie die tatsächlichen Daten benötigt, vorzuteilen.
Wenn Sie eine QList allmählich aufbauen und im Voraus ungefähr wissen, wie viele Elemente sie enthalten wird, können Sie reserve() aufrufen und QList bitten, eine bestimmte Menge an Speicher vorzubelegen. Sie können auch capacity() aufrufen, um herauszufinden, wie viel Speicher die QList tatsächlich zugewiesen hat.
Beachten Sie, dass die Verwendung von Nicht-Konst-Operatoren und -Funktionen dazu führen kann, dass QList aufgrund der impliziten gemeinsamen Nutzung eine Tiefenkopie der Daten anfertigt.
Der Wertetyp von QList muss ein zuweisbarer Datentyp sein. Dies deckt die meisten üblicherweise verwendeten Datentypen ab, aber der Compiler lässt es nicht zu, dass Sie z.B. QWidget als Wert speichern; speichern Sie stattdessen ein QWidget *. Einige wenige Funktionen haben zusätzliche Anforderungen; zum Beispiel erwarten indexOf() und lastIndexOf(), dass der Wertetyp operator==()
unterstützt. Diese Anforderungen sind für jede Funktion einzeln dokumentiert.
Für die Iteration über die Elemente, siehe Iteration über Container. Für die Verwendung von QList mit Funktionen aus dem <algorithm>
Header, wie std::sort()
, std::reverse()
und std::count_if()
, siehe Qt Container und std Algorithmen.
Zusätzlich zu QList bietet Qt auch QVarLengthArray, eine sehr einfache Klasse mit wenig Funktionalität, die auf Geschwindigkeit optimiert ist.
Weitere Informationen zur Verwendung von Qt Containern
Eine ausführliche Diskussion, in der Qt-Container untereinander und mit STL-Containern verglichen werden, finden Sie unter Qt-Container verstehen.
Maximale Größe und Out-of-Memory Bedingungen
Die maximale Größe von QList hängt von der Architektur ab. Die meisten 64-Bit-Systeme können mehr als 2 GB Speicher zuweisen, mit einer typischen Grenze von 2^63 Bytes. Der tatsächliche Wert hängt auch von dem für die Verwaltung des Datenblocks erforderlichen Overhead ab. Daher können Sie auf 32-Bit-Plattformen mit einer maximalen Größe von 2 GB abzüglich des Overheads und auf 64-Bit-Plattformen mit 2^63 Byte abzüglich des Overheads rechnen. Die Anzahl der Elemente, die in einer QList gespeichert werden können, ist diese maximale Größe geteilt durch die Größe eines gespeicherten Elements.
Wenn die Speicherzuweisung fehlschlägt, verwendet QList das Q_CHECK_PTR Makro, das eine std::bad_alloc
Ausnahme auslöst, wenn die Anwendung mit Ausnahmeunterstützung kompiliert wurde. Wenn Ausnahmen deaktiviert sind, dann ist das Auslaufen des Speichers ein undefiniertes Verhalten.
Beachten Sie, dass das Betriebssystem möglicherweise weitere Beschränkungen für Anwendungen mit viel zugewiesenem Speicher auferlegt, insbesondere für große, zusammenhängende Blöcke. Solche Überlegungen, die Konfiguration eines solchen Verhaltens oder jegliche Abhilfe liegen außerhalb des Rahmens der Qt-API.
Dokumentation der Mitgliedstypen
[alias]
QList::ConstIterator
Qt-style ist ein Synonym für QList::const_iterator.
[alias]
QList::Iterator
Qt-style ist ein Synonym für QList::iterator.
[alias]
QList::const_pointer
Aus Gründen der STL-Kompatibilität bereitgestellt.
[alias]
QList::const_reference
Aus Gründen der STL-Kompatibilität bereitgestellt.
[alias]
QList::const_reverse_iterator
Der QList::const_reverse_iterator Typedef bietet einen STL-ähnlichen const reverse iterator für QList.
Achtung! Iteratoren auf implizit gemeinsam genutzten Containern funktionieren nicht genau wie STL-Iteratoren. Sie sollten es vermeiden, einen Container zu kopieren, während Iteratoren auf diesem Container aktiv sind. Für weitere Informationen lesen Sie Implizite gemeinsame Nutzung Iterator Problem.
Warnung: Iteratoren werden ungültig, wenn QList geändert wird. Beachten Sie, dass alle Iteratoren standardmäßig ungültig gemacht werden. Ausnahmen von dieser Regel sind explizit dokumentiert.
Siehe auch QList::rbegin(), QList::rend(), QList::reverse_iterator, und QList::const_iterator.
[alias]
QList::difference_type
Aus Gründen der STL-Kompatibilität bereitgestellt.
[alias]
QList::parameter_type
[alias]
QList::pointer
Aus Gründen der STL-Kompatibilität bereitgestellt.
[alias]
QList::reference
Aus Gründen der STL-Kompatibilität bereitgestellt.
[alias]
QList::reverse_iterator
Das QList::reverse_iterator-Typedef bietet einen STL-ähnlichen non-const Reverse-Iterator für QList.
Achtung! Iteratoren auf implizit gemeinsam genutzten Containern funktionieren nicht genau wie STL-Iteratoren. Sie sollten es vermeiden, einen Container zu kopieren, während Iteratoren auf diesem Container aktiv sind. Für weitere Informationen lesen Sie Implizite gemeinsame Nutzung Iterator Problem.
Warnung: Iteratoren werden ungültig, wenn QList geändert wird. Beachten Sie, dass alle Iteratoren standardmäßig ungültig gemacht werden. Ausnahmen von dieser Regel sind explizit dokumentiert.
Siehe auch QList::rbegin(), QList::rend(), QList::const_reverse_iterator, und QList::iterator.
[alias]
QList::rvalue_ref
[alias]
QList::size_type
Aus Gründen der STL-Kompatibilität bereitgestellt.
[alias]
QList::value_type
Wird aus Gründen der STL-Kompatibilität bereitgestellt.
Dokumentation der Mitgliedsfunktionen
[since 6.0]
void QList::resize(qsizetype size)
[since 6.0]
void QList::resize(qsizetype size, QList<T>::parameter_type c)
Setzt die Größe der Liste auf size. Ist size größer als die aktuelle Größe, werden Elemente am Ende hinzugefügt; die neuen Elemente werden entweder mit einem standardmäßig erstellten Wert oder mit c initialisiert. Ist size kleiner als die aktuelle Größe, werden Elemente am Ende entfernt.
Wenn diese Liste nicht gemeinsam genutzt wird, bleibt capacity() erhalten. Verwenden Sie squeeze(), um überschüssige Kapazität abzubauen.
Hinweis: In Qt-Versionen vor 5.7 (für QVector; QList fehlte bis 6.0 ein resize()), gab diese Funktion den von der Liste verwendeten Speicher frei, anstatt die Kapazität zu erhalten.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch size().
Fügt value am Anfang der Liste ein.
Beispiel:
QList<QString> list; list.prepend("one"); list.prepend("two"); list.prepend("three"); // list: ["three", "two", "one"]
Dies ist dasselbe wie list.insert(0, value).
Normalerweise ist diese Operation relativ schnell (amortisierte konstante Zeit). QList ist in der Lage, zusätzlichen Speicher am Anfang der Listendaten zuzuweisen und in diese Richtung zu wachsen, ohne die Daten bei jeder Operation neu zuzuweisen oder zu verschieben. Wenn Sie jedoch eine Containerklasse mit einer Garantie für konstante Zeit verwenden möchten, sollten Sie stattdessen std::list verwenden, ansonsten aber QList bevorzugen.
Siehe auch append() und insert().
template <typename... Args> QList<T>::reference QList::emplaceBack(Args &&... args)
template <typename... Args> QList<T>::reference QList::emplace_back(Args &&... args)
Fügt ein neues Element am Ende des Containers hinzu. Dieses neue Element wird an Ort und Stelle konstruiert, wobei args als Argumente für seine Konstruktion verwendet werden.
Gibt einen Verweis auf das neue Element zurück.
Beispiel:
QList<QString> list{"eins", "zwei"}; list.emplaceBack(3, 'a');qDebug() << list; // Liste: ["eins", "zwei", "aaa"]
Es ist auch möglich, auf ein neu erstelltes Objekt über eine zurückgegebene Referenz zuzugreifen:
Dies ist dasselbe wie list.emplace(list.size(), args).
Siehe auch emplace.
QList<T>::iterator QList::insert(qsizetype i, QList<T>::parameter_type value)
QList<T>::iterator QList::insert(qsizetype i, QList<T>::rvalue_ref value)
Fügt value an der Indexposition i in die Liste ein. Wenn i gleich 0 ist, wird der Wert der Liste vorangestellt. Wenn i gleich size() ist, wird der Wert an die Liste angehängt.
Beispiel:
QList<QString> list = {"alpha", "beta", "delta"}; list.insert(2, "gamma"); // list: ["alpha", "beta", "gamma", "delta"]
Bei großen Listen kann dieser Vorgang langsam sein(lineare Zeit), da er erfordert, dass alle Elemente mit den Indizes i und darüber um eine Position weiter in den Speicher verschoben werden. Wenn Sie eine Containerklasse wünschen, die eine schnelle insert()-Funktion bietet, verwenden Sie stattdessen std::list.
Siehe auch append(), prepend(), und remove().
QList<T>::iterator QList::insert(QList<T>::const_iterator before, QList<T>::parameter_type value)
QList<T>::iterator QList::insert(QList<T>::const_iterator before, QList<T>::rvalue_ref value)
Dies ist eine überladene Funktion.
Fügt value vor dem Element ein, auf das der Iterator before zeigt. Gibt einen Iterator zurück, der auf das eingefügte Element zeigt.
void QList::replace(qsizetype i, QList<T>::parameter_type value)
void QList::replace(qsizetype i, QList<T>::rvalue_ref value)
Ersetzt das Element an der Indexposition i durch value.
i muss eine gültige Indexposition in der Liste sein (d.h. 0 <= i < size()).
Siehe auch operator[]() und remove().
void QList::push_front(QList<T>::parameter_type value)
void QList::push_front(QList<T>::rvalue_ref value)
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen. Sie ist äquivalent zu prepend(value).
[static constexpr, since 6.8]
qsizetype QList::maxSize()
[constexpr noexcept, since 6.8]
qsizetype QList::max_size() const
Sie gibt die maximale Anzahl von Elementen zurück, die die Liste theoretisch enthalten kann. In der Praxis kann die Anzahl viel kleiner sein, begrenzt durch den dem System zur Verfügung stehenden Speicher.
Diese Funktion wurde in Qt 6.8 eingeführt.
QList<T> QList::operator+(QList<T> &&other) &&
QList<T> QList::operator+(const QList<T> &other) &&
QList<T> QList::operator+(QList<T> &&other) const &
QList<T> QList::operator+(const QList<T> &other) const &
Gibt eine Liste zurück, die alle Elemente in dieser Liste enthält, gefolgt von allen Elementen in der Liste other.
Siehe auch operator+=().
QList::QList()
Konstruiert eine leere Liste.
Siehe auch resize().
[explicit]
QList::QList(qsizetype size)
Konstruiert eine Liste mit einer Anfangsgröße von size Elementen.
Die Elemente werden mit einem standardmäßig konstruierten Wert initialisiert.
Siehe auch resize().
QList::QList(std::initializer_list<T> args)
Konstruiert eine Liste aus der std::initializer_list, die durch args gegeben ist.
template <typename InputIterator, QList<T>::if_input_iterator<InputIterator> = true> QList::QList(InputIterator first, InputIterator last)
Konstruiert eine Liste mit dem Inhalt im Iteratorbereich [first, last).
Hinweis: Dieser Konstruktor nimmt nur an der Überladungsauflösung teil, wenn InputIterator
die Anforderungen eines LegacyInputIterators erfüllt.
Der Wertetyp von InputIterator
muss nach T
konvertierbar sein.
QList::QList(qsizetype size, QList<T>::parameter_type value)
Konstruiert eine Liste mit einer Anfangsgröße von size Elementen. Jedes Element wird mit value initialisiert.
Siehe auch resize() und fill().
[since 6.8]
QList::QList(qsizetype size, Qt::Initialization)
Konstruiert eine Liste mit einer Anfangsgröße von size Elementen.
QList wird versuchen, die Elemente nicht zu initialisieren.
Genauer gesagt:
- Wenn
T
einen Konstruktor hat, derQt::Uninitialized
akzeptiert, wird dieser Konstruktor verwendet, um die Elemente zu initialisieren; - Andernfalls wird jedes Element standardmäßig konstruiert. Für trivial konstruierbare Typen (wie
int
,float
, etc.) ist dies gleichbedeutend damit, sie nicht zu initialisieren.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch resizeForOverwrite().
[default]
QList::QList(const QList<T> &other)
Konstruiert eine Kopie von other.
Dieser Vorgang benötigt konstante Zeit, da QList implizit gemeinsam genutzt wird. Das macht die Rückgabe einer QList aus einer Funktion sehr schnell. Wenn eine gemeinsam genutzte Instanz geändert wird, wird sie kopiert (copy-on-write), was lineare Zeit benötigt.
Siehe auch operator=().
[default]
QList::QList(QList<T> &&other)
Move-konstruiert eine QList-Instanz, die auf das gleiche Objekt zeigt, auf das other gezeigt hat.
[default]
QList::~QList()
Zerstört die Liste.
void QList::append(QList<T>::parameter_type value)
Fügt value am Ende der Liste ein.
Beispiel:
QList<QString> list; list.append("one"); list.append("two"); QString three = "three"; list.append(three); // list: ["one", "two", "three"] // three: "three"
Dies ist dasselbe wie der Aufruf von resize(size() + 1) und die Zuweisung von value an das neue letzte Element der Liste.
Dieser Vorgang ist relativ schnell, da QList normalerweise mehr Speicher als nötig zuweist, so dass die Liste wachsen kann, ohne jedes Mal die gesamte Liste neu zuzuweisen.
Siehe auch operator<<(), prepend(), und insert().
[since 6.0]
void QList::append(QList<T> &&value)
Dies ist eine überladene Funktion.
Verschiebt die Elemente der Liste value an das Ende dieser Liste.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch operator<<() und operator+=().
void QList::append(QList<T>::rvalue_ref value)
Dies ist eine überladene Funktion.
Beispiel:
QList<QString> list; list.append("one"); list.append("two"); QString three = "three"; list.append(std::move(three)); // list: ["one", "two", "three"] // three: ""
void QList::append(const QList<T> &value)
Dies ist eine überladene Funktion.
Hängt die Elemente der Liste value an diese Liste an.
Siehe auch operator<<() und operator+=().
[since 6.6]
QList<T> &QList::assign(std::initializer_list<T> l)
Ersetzt den Inhalt dieser Liste durch eine Kopie der Elemente von l.
Die Größe dieser Liste ist gleich der Anzahl der Elemente in l.
Diese Funktion weist nur dann Speicher zu, wenn die Anzahl der Elemente in l die Kapazität dieser Liste übersteigt oder diese Liste gemeinsam genutzt wird.
Diese Funktion wurde in Qt 6.6 eingeführt.
[since 6.6]
template <typename InputIterator, QList<T>::if_input_iterator<InputIterator> = true> QList<T> &QList::assign(InputIterator first, InputIterator last)
Ersetzt den Inhalt dieser Liste durch eine Kopie der Elemente im Iteratorbereich [first, last).
Die Größe dieser Liste ist gleich der Anzahl der Elemente im Bereich [first, last).
Diese Funktion wird nur dann Speicher zuweisen, wenn die Anzahl der Elemente im Bereich die Kapazität dieser Liste übersteigt oder diese Liste gemeinsam genutzt wird.
Hinweis: Diese Funktionsüberladung nimmt nur an der Überladungsauflösung teil, wenn InputIterator
die Anforderungen eines LegacyInputIterators erfüllt.
Hinweis: Das Verhalten ist undefiniert, wenn eines der beiden Argumente ein Iterator in *this ist.
Diese Funktion wurde in Qt 6.6 eingeführt.
[since 6.6]
QList<T> &QList::assign(qsizetype n, QList<T>::parameter_type t)
Ersetzt den Inhalt dieser Liste durch n Kopien von t.
Die Größe dieser Liste ist gleich n.
Diese Funktion weist nur dann Speicher zu, wenn n die Kapazität der Liste überschreitet oder diese Liste gemeinsam genutzt wird.
Diese Funktion wurde in Qt 6.6 eingeführt.
[noexcept]
QList<T>::const_reference QList::at(qsizetype i) const
Gibt das Element an der Indexposition i in der Liste zurück.
i muss eine gültige Indexposition in der Liste sein (d.h. 0 <= i < size()).
Siehe auch value() und operator[]().
QList<T>::reference QList::back()
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen. Sie ist äquivalent zu last().
[noexcept]
QList<T>::const_reference QList::back() const
Dies ist eine überladene Funktion.
QList<T>::iterator QList::begin()
Gibt einen Iterator im STL-Stil zurück, der auf das erste Element in der Liste zeigt.
Warnung: Der zurückgegebene Iterator wird ungültig, wenn er abgetrennt wird oder wenn die QList geändert wird.
Siehe auch constBegin() und end().
[noexcept]
QList<T>::const_iterator QList::begin() const
Dies ist eine überladene Funktion.
qsizetype QList::capacity() const
Gibt die maximale Anzahl von Elementen zurück, die in der Liste gespeichert werden können, ohne eine Neuzuweisung zu erzwingen.
Der einzige Zweck dieser Funktion ist es, eine Feinabstimmung der Speichernutzung von QList zu ermöglichen. Im Allgemeinen werden Sie diese Funktion nur selten aufrufen müssen. Wenn Sie wissen wollen, wie viele Einträge in der Liste sind, rufen Sie size() auf.
Hinweis: Eine statisch zugewiesene Liste meldet eine Kapazität von 0, auch wenn sie nicht leer ist.
Warnung: Die Position des freien Speicherplatzes im zugewiesenen Speicherblock ist undefiniert. Mit anderen Worten: Sie sollten nicht davon ausgehen, dass sich der freie Speicher immer am Ende der Liste befindet. Sie können reserve() aufrufen, um sicherzustellen, dass am Ende genügend Platz vorhanden ist.
Siehe auch reserve() und squeeze().
[noexcept]
QList<T>::const_iterator QList::cbegin() const
Gibt einen Iterator im Stil von const STL zurück, der auf das erste Element in der Liste zeigt.
Warnung: Der zurückgegebene Iterator wird ungültig, wenn er abgetrennt wird oder wenn die QList geändert wird.
Siehe auch begin() und cend().
[noexcept]
QList<T>::const_iterator QList::cend() const
Gibt einen const STL-artigen Iterator zurück, der direkt auf das letzte Element in der Liste zeigt.
Warnung: Der zurückgegebene Iterator wird ungültig, wenn er abgetrennt wird oder wenn die QList geändert wird.
Siehe auch cbegin() und end().
void QList::clear()
Entfernt alle Elemente aus der Liste.
Wenn diese Liste nicht gemeinsam genutzt wird, bleibt capacity() erhalten. Verwenden Sie squeeze(), um überschüssige Kapazität abzubauen.
Hinweis: In Qt-Versionen vor 5.7 (für QVector) und 6.0 (für QList) gab diese Funktion den von der Liste verwendeten Speicher frei, anstatt die Kapazität zu erhalten.
Siehe auch resize() und squeeze().
[noexcept]
QList<T>::const_iterator QList::constBegin() const
Gibt einen Iterator im Stil von const STL zurück, der auf das erste Element in der Liste zeigt.
Warnung: Der zurückgegebene Iterator wird ungültig, wenn er abgetrennt wird oder wenn die QList geändert wird.
Siehe auch begin() und constEnd().
[noexcept]
QList<T>::const_pointer QList::constData() const
Gibt einen konstanten Zeiger auf die in der Liste gespeicherten Daten zurück. Der Zeiger kann für den Zugriff auf die Elemente in der Liste verwendet werden.
Warnung: Der Zeiger wird ungültig, wenn er abgetrennt wird oder wenn die QList geändert wird.
Diese Funktion ist vor allem nützlich, um eine Liste an eine Funktion zu übergeben, die ein einfaches C++-Array akzeptiert.
Siehe auch data() und operator[]().
[noexcept]
QList<T>::const_iterator QList::constEnd() const
Gibt einen const STL-artigen Iterator zurück, der direkt auf das letzte Element in der Liste zeigt.
Warnung: Der zurückgegebene Iterator wird ungültig, wenn er abgetrennt wird oder wenn die QList geändert wird.
Siehe auch constBegin() und end().
[noexcept]
const T &QList::constFirst() const
Gibt einen konstanten Verweis auf den ersten Eintrag in der Liste zurück. Diese Funktion geht davon aus, dass die Liste nicht leer ist.
Siehe auch constLast(), isEmpty(), und first().
[noexcept]
const T &QList::constLast() const
Gibt einen konstanten Verweis auf den letzten Eintrag in der Liste zurück. Diese Funktion geht davon aus, dass die Liste nicht leer ist.
Siehe auch constFirst(), isEmpty(), und last().
[noexcept]
template <typename AT> bool QList::contains(const AT &value) const
Gibt true
zurück, wenn die Liste ein Vorkommen von value enthält; andernfalls wird false
zurückgegeben.
Diese Funktion setzt voraus, dass der Wertetyp eine Implementierung von operator==()
hat.
Siehe auch indexOf() und count().
[noexcept]
template <typename AT = T> qsizetype QList::count(const AT &value) const
Gibt die Anzahl der Vorkommen von value in der Liste zurück.
Diese Funktion setzt voraus, dass der Wertetyp eine Implementierung von operator==()
hat.
Siehe auch contains() und indexOf().
[noexcept]
qsizetype QList::count() const
Dies ist eine überladene Funktion.
Dasselbe wie size().
[noexcept]
QList<T>::const_reverse_iterator QList::crbegin() const
Gibt einen Reverse-Iterator im Stil von const STL zurück, der auf das erste Element der Liste in umgekehrter Reihenfolge zeigt.
Warnung: Der zurückgegebene Iterator wird ungültig, wenn er abgetrennt wird oder wenn die QList geändert wird.
Siehe auch begin(), rbegin(), und rend().
[noexcept]
QList<T>::const_reverse_iterator QList::crend() const
Gibt einen umgekehrten Iterator im Stil von const STL zurück, der in umgekehrter Reihenfolge direkt auf das letzte Element in der Liste zeigt.
Warnung: Der zurückgegebene Iterator wird ungültig, wenn er abgetrennt wird oder wenn die QList geändert wird.
Siehe auch end(), rend(), und rbegin().
QList<T>::pointer QList::data()
Gibt einen Zeiger auf die in der Liste gespeicherten Daten zurück. Der Zeiger kann für den Zugriff auf die Elemente in der Liste und für deren Änderung verwendet werden.
Beispiel:
QList<int> list(10); int *data = list.data(); for (qsizetype i = 0; i < 10; ++i) data[i] = 2 * i;
Warnung: Der Zeiger wird ungültig, wenn er abgetrennt wird oder wenn die QList geändert wird.
Diese Funktion ist vor allem nützlich, um eine Liste an eine Funktion zu übergeben, die ein einfaches C++-Array akzeptiert.
Siehe auch constData() und operator[]().
[noexcept]
QList<T>::const_pointer QList::data() const
Dies ist eine überladene Funktion.
template <typename... Args> QList<T>::iterator QList::emplace(qsizetype i, Args &&... args)
Erweitert den Container durch Einfügen eines neuen Elements an der Position i. Dieses neue Element wird an Ort und Stelle konstruiert, wobei args als Argumente für seine Konstruktion verwendet werden.
Gibt einen Iterator zum neuen Element zurück.
Beispiel:
Hinweis: Es ist garantiert, dass das Element zu Beginn an Ort und Stelle erstellt wird, aber danach kann es kopiert oder an die richtige Position verschoben werden.
Siehe auch emplaceBack.
template <typename... Args> QList<T>::iterator QList::emplace(QList<T>::const_iterator before, Args &&... args)
Dies ist eine überladene Funktion.
Erzeugt ein neues Element vor dem Element, auf das der Iterator before zeigt. Dieses neue Element wird an Ort und Stelle konstruiert, wobei args als Argumente für seine Konstruktion verwendet werden.
Gibt einen Iterator zum neuen Element zurück.
[noexcept]
bool QList::empty() const
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen. Sie ist äquivalent zu isEmpty() und gibt true
zurück, wenn die Liste leer ist; andernfalls gibt sie false
zurück.
QList<T>::iterator QList::end()
Gibt einen Iterator im STL-Stil zurück, der direkt auf das letzte Element in der Liste zeigt.
Warnung: Der zurückgegebene Iterator wird ungültig, wenn er abgetrennt wird oder wenn die QList geändert wird.
Siehe auch begin() und constEnd().
[noexcept]
QList<T>::const_iterator QList::end() const
Dies ist eine überladene Funktion.
bool QList::endsWith(QList<T>::parameter_type value) const
Gibt true
zurück, wenn diese Liste nicht leer ist und ihr letzter Eintrag gleich value ist; andernfalls wird false
zurückgegeben.
Siehe auch isEmpty() und last().
QList<T>::iterator QList::erase(QList<T>::const_iterator pos)
Entfernt das Element, auf das der Iterator pos zeigt, aus der Liste und gibt einen Iterator zum nächsten Element in der Liste zurück (der end() sein kann).
Durch das Entfernen von Elementen wird die Kapazität der Liste erhalten und der zugewiesene Speicherplatz nicht verringert. Um zusätzliche Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie squeeze() auf.
Hinweis: Wenn QList nicht implizit freigegeben ist, macht diese Funktion nur Iteratoren an oder nach der angegebenen Position ungültig.
Siehe auch insert() und remove().
QList<T>::iterator QList::erase(QList<T>::const_iterator begin, QList<T>::const_iterator end)
Dies ist eine überladene Funktion.
Entfernt alle Elemente von begin bis zu (aber nicht einschließlich) end. Gibt einen Iterator zu demselben Element zurück, auf das end vor dem Aufruf verwiesen hat.
Durch das Entfernen von Elementen wird die Kapazität der Liste erhalten und der zugewiesene Speicher nicht verringert. Um zusätzliche Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie squeeze() auf.
Hinweis: Wenn QList nicht implizit freigegeben ist, macht diese Funktion nur Iteratoren an oder nach der angegebenen Position ungültig.
QList<T> &QList::fill(QList<T>::parameter_type value, qsizetype size = -1)
Weist allen Elementen in der Liste value zu. Wenn size ungleich -1 ist (die Vorgabe), wird die Liste vorher auf size angepasst.
Beispiel:
QList<QString> list(3); list.fill("Yes"); // list: ["Yes", "Yes", "Yes"] list.fill("oh", 5); // list: ["oh", "oh", "oh", "oh", "oh"]
Siehe auch resize().
T &QList::first()
Gibt einen Verweis auf den ersten Eintrag in der Liste zurück. Diese Funktion geht davon aus, dass die Liste nicht leer ist.
Siehe auch last(), isEmpty(), und constFirst().
[since 6.0]
QList<T> QList::first(qsizetype n) const
Gibt eine Teilliste zurück, die die ersten n Elemente dieser Liste enthält.
Hinweis: Das Verhalten ist undefiniert, wenn n < 0 oder n > size().
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch last() und sliced().
[noexcept]
const T &QList::first() const
Dies ist eine überladene Funktion.
QList<T>::reference QList::front()
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen. Sie ist äquivalent zu first().
[noexcept]
QList<T>::const_reference QList::front() const
Dies ist eine überladene Funktion.
[noexcept]
template <typename AT> qsizetype QList::indexOf(const AT &value, qsizetype from = 0) const
Gibt die Indexposition des ersten Vorkommens von value in der Liste zurück, wobei ab der Indexposition from vorwärts gesucht wird. Gibt -1 zurück, wenn kein Element übereinstimmt.
Beispiel:
QList<QString> list{"A", "B", "C", "B", "A"}; list.indexOf("B"); // returns 1 list.indexOf("B", 1); // returns 1 list.indexOf("B", 2); // returns 3 list.indexOf("X"); // returns -1
Für diese Funktion muss der Wertetyp eine Implementierung von operator==()
haben.
Siehe auch lastIndexOf() und contains().
QList<T>::iterator QList::insert(QList<T>::const_iterator before, qsizetype count, QList<T>::parameter_type value)
Fügt count Kopien von value vor dem Element ein, auf das der Iterator before zeigt. Gibt einen Iterator zurück, der auf das erste der eingefügten Elemente zeigt.
QList<T>::iterator QList::insert(qsizetype i, qsizetype count, QList<T>::parameter_type value)
Dies ist eine überladene Funktion.
Fügt count Kopien von value an der Indexposition i in die Liste ein.
Beispiel:
QList<double> list = {2.718, 1.442, 0.4342}; list.insert(1, 3, 9.9); // list: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]
[noexcept]
bool QList::isEmpty() const
Gibt true
zurück, wenn die Liste die Größe 0 hat; andernfalls wird false
zurückgegeben.
Siehe auch size() und resize().
T &QList::last()
Gibt einen Verweis auf den letzten Eintrag in der Liste zurück. Diese Funktion geht davon aus, dass die Liste nicht leer ist.
Siehe auch first(), isEmpty(), und constLast().
[since 6.0]
QList<T> QList::last(qsizetype n) const
Gibt eine Teilliste zurück, die die letzten n Elemente dieser Liste enthält.
Hinweis: Das Verhalten ist undefiniert, wenn n < 0 oder n > size().
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch first() und sliced().
[noexcept]
const T &QList::last() const
Dies ist eine überladene Funktion.
[noexcept]
template <typename AT> qsizetype QList::lastIndexOf(const AT &value, qsizetype from = -1) const
Gibt die Indexposition des letzten Vorkommens des Wertes value in der Liste zurück, wobei ab der Indexposition from rückwärts gesucht wird. Ist from gleich -1 (Standardwert), beginnt die Suche beim letzten Element. Gibt -1 zurück, wenn kein Element übereinstimmt.
Beispiel:
QList<QString> list = {"A", "B", "C", "B", "A"}; list.lastIndexOf("B"); // returns 3 list.lastIndexOf("B", 3); // returns 3 list.lastIndexOf("B", 2); // returns 1 list.lastIndexOf("X"); // returns -1
Diese Funktion erfordert, dass der Wertetyp eine Implementierung von operator==()
hat.
Siehe auch indexOf().
[noexcept]
qsizetype QList::length() const
Dasselbe wie size() und count().
Siehe auch size() und count().
QList<T> QList::mid(qsizetype pos, qsizetype length = -1) const
Gibt eine Teilliste zurück, die Elemente aus dieser Liste enthält, beginnend an der Position pos. Ist length gleich -1 (Standardeinstellung), werden alle Elemente nach pos einbezogen; andernfalls werden length Elemente (oder alle verbleibenden Elemente, wenn es weniger als length Elemente gibt) einbezogen.
void QList::move(qsizetype from, qsizetype to)
Verschiebt das Element an der Indexposition from an die Indexposition to.
[noexcept]
void QList::pop_back()
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen. Sie ist äquivalent zu removeLast().
[noexcept]
void QList::pop_front()
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen. Sie ist äquivalent zu removeFirst().
void QList::push_back(QList<T>::parameter_type value)
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen. Sie ist äquivalent zu append(value).
void QList::push_back(QList<T>::rvalue_ref value)
Dies ist eine überladene Funktion.
QList<T>::reverse_iterator QList::rbegin()
Gibt einen umgekehrten Iterator im STL-Stil zurück, der auf das erste Element in der Liste in umgekehrter Reihenfolge zeigt.
Warnung: Der zurückgegebene Iterator wird ungültig, wenn er abgetrennt wird oder wenn die QList geändert wird.
Siehe auch begin(), crbegin(), und rend().
[noexcept]
QList<T>::const_reverse_iterator QList::rbegin() const
Dies ist eine überladene Funktion.
void QList::remove(qsizetype i, qsizetype n = 1)
Entfernt n Elemente aus der Liste, beginnend mit der Indexposition i.
Durch das Entfernen von Elementen bleibt die Kapazität der Liste erhalten und der zugewiesene Speicherplatz wird nicht verringert. Um zusätzliche Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie squeeze() auf.
Hinweis: Wenn QList nicht implizit freigegeben ist, macht diese Funktion nur Iteratoren an oder nach der angegebenen Position ungültig.
Siehe auch insert(), replace(), und fill().
template <typename AT = T> qsizetype QList::removeAll(const AT &t)
Entfernt alle Elemente, die gleich t sind, aus der Liste. Gibt die Anzahl der entfernten Elemente zurück, falls vorhanden.
Das Entfernen von Elementen erhält die Kapazität der Liste und verringert nicht die Menge des zugewiesenen Speichers. Um zusätzliche Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie squeeze() auf.
Siehe auch removeOne().
void QList::removeAt(qsizetype i)
Entfernt das Element an der Indexposition i. Äquivalent zu
remove(i);
Das Entfernen von Elementen erhält die Kapazität der Liste und verringert nicht die Menge des zugewiesenen Speichers. Um zusätzliche Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie squeeze() auf.
Hinweis: Wenn QList nicht implizit freigegeben ist, macht diese Funktion nur Iteratoren an oder nach der angegebenen Position ungültig.
Siehe auch remove().
[noexcept]
void QList::removeFirst()
Entfernt den ersten Eintrag in der Liste. Der Aufruf dieser Funktion ist gleichbedeutend mit dem Aufruf von remove(0). Die Liste darf nicht leer sein. Wenn die Liste leer sein kann, rufen Sie isEmpty() auf, bevor Sie diese Funktion aufrufen.
Das Entfernen von Elementen erhält die Kapazität der Liste und verringert nicht den zugewiesenen Speicherplatz. Um zusätzliche Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie squeeze() auf.
Siehe auch remove(), takeFirst(), und isEmpty().
[since 6.1]
template <typename Predicate> qsizetype QList::removeIf(Predicate pred)
Entfernt alle Elemente, für die das Prädikat pred den Wert true liefert, aus der Liste. Gibt die Anzahl der entfernten Elemente zurück, falls vorhanden.
Diese Funktion wurde in Qt 6.1 eingeführt.
Siehe auch removeAll().
[noexcept]
void QList::removeLast()
Entfernt das letzte Element in der Liste. Der Aufruf dieser Funktion ist gleichbedeutend mit dem Aufruf von remove(size() - 1). Die Liste darf nicht leer sein. Wenn die Liste leer sein kann, rufen Sie isEmpty() auf, bevor Sie diese Funktion aufrufen.
Durch das Entfernen von Elementen bleibt die Kapazität der Liste erhalten und der zugewiesene Speicherplatz wird nicht verringert. Um zusätzliche Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie squeeze() auf.
Siehe auch remove(), takeLast(), removeFirst(), und isEmpty().
template <typename AT = T> bool QList::removeOne(const AT &t)
Entfernt das erste Element, das gleich t ist, aus der Liste. Gibt zurück, ob ein Element tatsächlich entfernt wurde.
Durch das Entfernen von Elementen wird die Kapazität der Liste erhalten und der zugewiesene Speicherplatz nicht verringert. Um zusätzliche Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie squeeze() auf.
Siehe auch removeAll().
QList<T>::reverse_iterator QList::rend()
Gibt einen umgekehrten Iterator im STL-Stil zurück, der in umgekehrter Reihenfolge direkt auf das letzte Element in der Liste zeigt.
Warnung: Der zurückgegebene Iterator wird ungültig, wenn er abgetrennt wird oder wenn die QList geändert wird.
Siehe auch end(), crend(), und rbegin().
[noexcept]
QList<T>::const_reverse_iterator QList::rend() const
Dies ist eine überladene Funktion.
void QList::reserve(qsizetype size)
Versucht, Speicher für mindestens size Elemente zuzuweisen.
Wenn Sie im Voraus wissen, wie groß die Liste sein wird, sollten Sie diese Funktion aufrufen, um Neuzuweisungen und Speicherfragmentierung zu vermeiden. Wenn Sie die Größe der Liste häufig ändern, werden Sie wahrscheinlich auch eine bessere Leistung erzielen.
Wenn Sie sich nicht sicher sind, wie viel Speicherplatz benötigt wird, ist es in der Regel besser, eine Obergrenze wie size zu verwenden, oder eine hohe Schätzung der wahrscheinlichsten Größe, wenn eine strenge Obergrenze viel größer wäre als diese. Wenn size eine zu niedrige Schätzung ist, wird die Liste nach Bedarf wachsen, sobald die reservierte Größe überschritten wird, was zu einer größeren Zuweisung führen kann, als es Ihre beste Überschätzung getan hätte, und die Operation, die sie auslöst, verlangsamen wird.
Warnung: reserve() reserviert Speicher, ändert aber nicht die Größe der Liste. Der Zugriff auf Daten jenseits des aktuellen Endes der Liste ist ein undefiniertes Verhalten. Wenn Sie auf Speicher über das aktuelle Ende der Liste hinaus zugreifen müssen, verwenden Sie resize().
Siehe auch squeeze(), capacity(), und resize().
[since 6.8]
void QList::resizeForOverwrite(qsizetype size)
Setzt die Größe der Liste auf size. Wenn size kleiner als die aktuelle Größe ist, werden Elemente vom Ende entfernt. Ist size größer als die aktuelle Größe, werden Elemente am Ende hinzugefügt; QList wird versuchen, diese neuen Elemente nicht zu initialisieren.
Konkret bedeutet dies:
- Wenn
T
einen Konstruktor hat, derQt::Uninitialized
akzeptiert, wird dieser Konstruktor verwendet, um die Elemente zu initialisieren; - Andernfalls wird jedes Element standardmäßig konstruiert. Für trivial konstruierbare Typen (wie
int
,float
, etc.) ist dies gleichbedeutend damit, sie nicht zu initialisieren.
Diese Funktion wurde in Qt 6.8 eingeführt.
void QList::shrink_to_fit()
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen. Sie ist äquivalent zu squeeze().
[noexcept]
qsizetype QList::size() const
Gibt die Anzahl der Elemente in der Liste zurück.
Siehe auch isEmpty() und resize().
[since 6.0]
QList<T> QList::sliced(qsizetype pos, qsizetype n) const
Gibt eine Teilliste zurück, die n Elemente dieser Liste enthält, beginnend an der Position pos.
Hinweis: Das Verhalten ist undefiniert, wenn pos < 0, n < 0, oder pos + n > size().
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch first() und last().
[since 6.0]
QList<T> QList::sliced(qsizetype pos) const
Dies ist eine überladene Funktion.
Gibt eine Teilliste zurück, die die Elemente dieser Liste ab der Position pos bis zu ihrem Ende enthält.
Hinweis: Das Verhalten ist undefiniert, wenn pos < 0 oder pos > size().
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch first() und last().
void QList::squeeze()
Gibt den Speicher frei, der für die Speicherung der Elemente nicht benötigt wird.
Der einzige Zweck dieser Funktion ist es, eine Feinabstimmung der Speichernutzung von QList zu ermöglichen. Im Allgemeinen werden Sie diese Funktion nur selten aufrufen müssen.
Siehe auch reserve() und capacity().
bool QList::startsWith(QList<T>::parameter_type value) const
Gibt true
zurück, wenn diese Liste nicht leer ist und ihr erstes Element gleich value ist; andernfalls wird false
zurückgegeben.
Siehe auch isEmpty() und first().
[noexcept]
void QList::swap(QList<T> &other)
Tauscht diese Liste mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
void QList::swapItemsAt(qsizetype i, qsizetype j)
Tausche das Element an der Indexposition i gegen das Element an der Indexposition j aus. Diese Funktion geht davon aus, dass sowohl i als auch j mindestens 0 aber kleiner als size() sind. Um einen Fehler zu vermeiden, prüfen Sie, ob sowohl i als auch j mindestens 0 und kleiner als size() sind.
T QList::takeAt(qsizetype i)
Entfernt das Element an der Indexposition i und gibt es zurück.
Äquivalent zu
T t = at(i); remove(i); return t;
Hinweis: Wenn QList nicht implizit freigegeben ist, macht diese Funktion nur Iteratoren an oder nach der angegebenen Position ungültig.
Siehe auch takeFirst() und takeLast().
QList<T>::value_type QList::takeFirst()
Entfernt das erste Element der Liste und gibt es zurück. Diese Funktion setzt voraus, dass die Liste nicht leer ist. Um Fehlschläge zu vermeiden, rufen Sie isEmpty() auf, bevor Sie diese Funktion aufrufen.
Siehe auch takeLast() und removeFirst().
QList<T>::value_type QList::takeLast()
Entfernt das letzte Element in der Liste und gibt es zurück. Diese Funktion setzt voraus, dass die Liste nicht leer ist. Um Fehlschläge zu vermeiden, rufen Sie isEmpty() auf, bevor Sie diese Funktion aufrufen.
Wenn Sie den Rückgabewert nicht verwenden, ist removeLast() effizienter.
Siehe auch takeFirst() und removeLast().
T QList::value(qsizetype i) const
Gibt den Wert an der Indexposition i in der Liste zurück.
Wenn der Index i außerhalb des zulässigen Bereichs liegt, gibt die Funktion einen standardmäßig konstruierten Wert zurück. Wenn Sie sicher sind, dass i innerhalb der Grenzen liegt, können Sie stattdessen at() verwenden, was etwas schneller ist.
Siehe auch at() und operator[]().
T QList::value(qsizetype i, QList<T>::parameter_type defaultValue) const
Dies ist eine überladene Funktion.
Wenn der Index i außerhalb der Grenzen liegt, gibt die Funktion defaultValue zurück.
bool QList::operator!=(const QList<T> &other) const
Gibt true
zurück, wenn other nicht gleich dieser Liste ist; andernfalls wird false
zurückgegeben.
Zwei Listen werden als gleich angesehen, wenn sie die gleichen Werte in der gleichen Reihenfolge enthalten.
Diese Funktion setzt voraus, dass der Wertetyp eine Implementierung von operator==()
hat.
Siehe auch operator==().
QList<T> &QList::operator+=(const QList<T> &other)
Hängt die Elemente der Liste other an diese Liste an und gibt einen Verweis auf diese Liste zurück.
Siehe auch operator+() und append().
[since 6.0]
QList<T> &QList::operator+=(QList<T> &&other)
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch operator+() und append().
QList<T> &QList::operator+=(QList<T>::parameter_type value)
Dies ist eine überladene Funktion.
Hängt value an die Liste an.
Siehe auch append() und operator<<().
QList<T> &QList::operator+=(QList<T>::rvalue_ref value)
Dies ist eine überladene Funktion.
Siehe auch append() und operator<<().
bool QList::operator<(const QList<T> &other) const
Gibt true
zurück, wenn diese Liste lexikalisch kleiner als other ist; andernfalls wird false
zurückgegeben.
Diese Funktion setzt voraus, dass der Wertetyp eine Implementierung von operator<()
hat.
QList<T> &QList::operator<<(QList<T>::parameter_type value)
Hängt value an die Liste an und gibt einen Verweis auf diese Liste zurück.
Siehe auch append() und operator+=().
QList<T> &QList::operator<<(const QList<T> &other)
Hängt other an die Liste an und gibt einen Verweis auf die Liste zurück.
[since 6.0]
QList<T> &QList::operator<<(QList<T> &&other)
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.0 eingeführt.
QList<T> &QList::operator<<(QList<T>::rvalue_ref value)
Dies ist eine überladene Funktion.
Siehe auch append() und operator+=().
bool QList::operator<=(const QList<T> &other) const
Gibt true
zurück, wenn diese Liste lexikalisch kleiner oder gleich other ist; andernfalls wird false
zurückgegeben.
Diese Funktion setzt voraus, dass der Wertetyp eine Implementierung von operator<()
hat.
[default]
QList<T> &QList::operator=(QList<T> &&other)
Verschieben - weist other dieser QList Instanz zu.
[default]
QList<T> &QList::operator=(const QList<T> &other)
Weist other dieser Liste zu und gibt einen Verweis auf diese Liste zurück.
QList<T> &QList::operator=(std::initializer_list<T> args)
Weist die Sammlung von Werten in args dieser QList Instanz zu.
bool QList::operator==(const QList<T> &other) const
Gibt true
zurück, wenn other mit dieser Liste übereinstimmt; andernfalls wird false
zurückgegeben.
Zwei Listen werden als gleich angesehen, wenn sie die gleichen Werte in der gleichen Reihenfolge enthalten.
Diese Funktion setzt voraus, dass der Wertetyp eine Implementierung von operator==()
hat.
Siehe auch operator!=().
bool QList::operator>(const QList<T> &other) const
Gibt true
zurück, wenn diese Liste lexikalisch größer als other ist; andernfalls wird false
zurückgegeben.
Diese Funktion setzt voraus, dass der Wertetyp eine Implementierung von operator<()
hat.
bool QList::operator>=(const QList<T> &other) const
Gibt true
zurück, wenn diese Liste lexikalisch größer oder gleich other ist; andernfalls wird false
zurückgegeben.
Für diese Funktion muss der Wertetyp eine Implementierung von operator<()
haben.
QList<T>::reference QList::operator[](qsizetype i)
Gibt das Element an der Indexposition i als änderbare Referenz zurück.
i muss eine gültige Indexposition in der Liste sein (d.h. 0 <= i < size()).
Beachten Sie, dass die Verwendung von Nicht-Konst-Operatoren dazu führen kann, dass QList eine Deep Copy durchführt.
[noexcept]
QList<T>::const_reference QList::operator[](qsizetype i) const
Dies ist eine überladene Funktion.
Dasselbe wie at(i).
Verwandte Nicht-Mitglieder
[since 6.1]
template <typename T, typename AT> qsizetype erase(QList<T> &list, const AT &t)
Entfernt alle Elemente, die gleich t sind, aus der Liste list. Gibt die Anzahl der entfernten Elemente zurück, falls vorhanden.
Hinweis: Im Gegensatz zu QList::removeAll darf t kein Verweis auf ein Element innerhalb von list sein. Wenn Sie nicht sicher sein können, dass dies nicht der Fall ist, nehmen Sie eine Kopie von t und rufen Sie diese Funktion mit der Kopie auf.
Diese Funktion wurde in Qt 6.1 eingeführt.
Siehe auch QList::removeAll() und erase_if.
[since 6.1]
template <typename T, typename Predicate> qsizetype erase_if(QList<T> &list, Predicate pred)
Entfernt alle Elemente, für die das Prädikat pred den Wert true liefert, aus der Liste list. Gibt die Anzahl der entfernten Elemente zurück, falls vorhanden.
Diese Funktion wurde in Qt 6.1 eingeführt.
Siehe auch erase.
[noexcept(...)]
template <typename T> size_t qHash(const QList<T> &key, size_t seed = 0)
Gibt den Hash-Wert für key zurück, wobei seed als Startwert für die Berechnung verwendet wird.
Der Typ T
muss von qHash() unterstützt werden.
Hinweis: Diese Funktion ist noexcept, wenn noexcept(qHashRange(key.cbegin(), key.cend(), seed))
true
ist.
template <typename T> QDataStream &operator<<(QDataStream &out, const QList<T> &list)
Schreibt die Liste list in den Stream out.
Für diese Funktion muss der Wertetyp operator<<()
implementiert werden.
Siehe auch Format der QDataStream-Operatoren.
template <typename T> QDataStream &operator>>(QDataStream &in, QList<T> &list)
Liest eine Liste aus Stream in in list.
Für diese Funktion muss der Wertetyp operator>>()
implementiert sein.
Siehe auch Format der QDataStream-Operatoren.
© 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.