Auf dieser Seite

QList Class

template <typename T> class QList

Die Klasse „QList“ ist eine Template-Klasse, die ein dynamisches Array bereitstellt. Mehr...

Header: #include <QList>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Vererbt an:
16 Typen

QBluetoothServiceInfo::Alternative, QBluetoothServiceInfo::Sequence, QByteArrayList, QItemSelection, QMqttUserProperties, QNdefMessage, QPolygon, QPolygonF, QQueue, QSignalSpy, QStack, QStringList, QTestEventList, QVector, QVulkanInfoVector sowie QXmlStreamAttributes

Hinweis: Alle Funktionen 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 size, Qt::Initialization)
QList(const QList<T>&other)
QList(QList<T>&&other)
~QList()
void append(QList<T>::parameter_type value)
(since 6.0) void append(QList<T>&&value)
void append(QList<T>::rvalue_ref value)
void append(const QList<T>&value)
(since 6.6) QList<T> &assign(std::initializer_list<T> l)
(since 6.6) QList<T> &assign(InputIterator first, InputIterator last)
(since 6.6) QList<T> &assign(qsizetype n, QList<T>::parameter_type t)
QList<T>::const_reference at(qsizetype i) const
QList<T>::reference 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&value) const
qsizetype count(const AT&value) const
qsizetype count() const
QList<T>::const_reverse_iterator crbegin() const
QList<T>::const_reverse_iterator crend() const
QList<T>::Zeiger data()
QList<T>::const_pointer data() const
void detach()
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>::reference emplace_back(Args &&... args)
bool empty() const
QList<T>::iterator end()
QList<T>::const_iterator end() const
bool endsWith(QList<T>::parameter_type value) 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>::reference 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 value)
QList<T>::iterator insert(qsizetype i, QList<T>::rvalue_ref value)
QList<T>::iterator insert(QList<T>::const_iterator before, qsizetype count, QList<T>::parameter_type value)
QList<T>::iterator insert(QList<T>::const_iterator before, QList<T>::parameter_type value)
QList<T>::iterator insert(QList<T>::const_iterator before, QList<T>::rvalue_ref value)
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&value, qsizetype from = -1) const
qsizetype length() const
(since 6.8) qsizetype max_size() const
QList<T> mid(qsizetype pos, qsizetype length = -1) const
void move(qsizetype from, qsizetype to)
void pop_back()
void pop_front()
void prepend(QList<T>::parameter_type value)
void prepend(QList<T>::rvalue_ref value)
void push_back(QList<T>::parameter_type value)
void push_back(QList<T>::rvalue_ref value)
void push_front(QList<T>::parameter_type value)
void push_front(QList<T>::rvalue_ref value)
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 value)
void replace(qsizetype i, QList<T>::rvalue_ref value)
void reserve(qsizetype size)
(since 6.0) void resize(qsizetype size)
(since 6.0) void resize(qsizetype size, QList<T>::parameter_type c)
(since 6.8) void resizeForOverwrite(qsizetype size)
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 value) const
void swap(QList<T>&other)
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>&&other) &&
QList<T> operator+(const QList<T>&other) &&
QList<T> operator+(QList<T>&&other) const &
QList<T> operator+(const QList<T>&other) const &
QList<T> &operator+=(const QList<T>&other)
(since 6.0) QList<T> &operator+=(QList<T>&&other)
QList<T> &operator+=(QList<T>::parameter_type value)
QList<T> &operator+=(QList<T>::rvalue_ref Wert)
bool operator<(const QList<T>&other) const
QList<T> &operator<<(QList<T>::parameter_type value)
QList<T> &operator<<(const QList<T>&other)
(since 6.0) QList<T> &operator<<(QList<T> &&other)
QList<T> &operator<<(QList<T>::rvalue_ref value)
bool operator<=(const QList<T>&other) const
QList<T> &operator=(QList<T>&&other)
QList<T> &operator=(const QList<T>&other)
QList<T> &operator=(std::initializer_list<T> args)
bool operator==(const QList<T>&other) const
bool operator>(const QList<T>&other) const
bool operator>=(const QList<T>&other) const
QList<T>::reference operator[](qsizetype i)
QList<T>::const_reference operator[](qsizetype i) const

Statische öffentliche Mitglieder

(since 6.8) qsizetype maxSize()
(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)
(since 6.9) auto operator<=>(const QList<T> &lhs, const QList<T> &rhs)
QDataStream &operator>>(QDataStream &in, QList<T> &list)

Ausführliche Beschreibung

QList<T> ist eine der generischen Containerklassen von Qt, wobei T den Typ der in der Liste gespeicherten Elemente angibt. Sie speichert ihre Elemente in benachbarten Speicherplätzen und bietet schnellen indexbasierten Zugriff. QVector<T> war in Qt 5 eine eigenständige Klasse, ist nun jedoch ein einfacher Alias für QList.

QList<T> und QVarLengthArray<T> bieten ähnliche APIs und Funktionen. Sie sind oft austauschbar, allerdings gibt es Auswirkungen auf die Leistung. Hier ist ein Überblick über Anwendungsfälle:

  • QList sollte Ihre erste Wahl sein.
  • QVarLengthArray Es stellt ein Array bereit, das Speicherplatz auf dem Stack reserviert, bei Bedarf aber dynamisch auf den Heap erweitert werden kann. Es eignet sich gut für kurzlebige Container, die in der Regel klein sind.
  • Wenn Sie eine echte verknüpfte Liste benötigen, die Einfügungen in der Mitte der Liste in konstanter Zeit garantiert und Iteratoren anstelle von Indizes verwendet, nutzen Sie `std::list`.

Hinweis: Sowohl`QList ` als auch ` QVarLengthArray ` garantieren 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 besser vorhersehbare Leistung zu erzielen. Dies ist in Qt 6 nicht mehr der Fall, da beide Klassen nun dieselbe Implementierung nutzen 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<int> integerList;
QList<QString> stringList;

Eine `QList` speichert ihre Elemente in einem Array mit zusammenhängendem Speicher. In der Regel werden Listen mit einer anfänglichen Größe angelegt. Der folgende Code erstellt beispielsweise eine `QList` mit 200 Elementen:

QList<QString> list(200);

Die Elemente werden automatisch mit einem Standardwert initialisiert. Wenn Sie die Liste mit einem anderen Wert initialisieren möchten, übergeben Sie diesen Wert als zweites Argument an den Konstruktor:

QList<QString> list(200, "Pass");

Sie können außerdem 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 den Operator []() verwenden. Bei nicht-konstanten Listen gibt der 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 schreibgeschützten Zugriff bietet sich alternativ die Syntax ` at()` an:

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 der Operator [](), da dabei niemals eine tiefe Kopie erstellt wird.

Eine weitere Möglichkeit, auf die in einer QList gespeicherten Daten zuzugreifen, ist der Aufruf von ` data()`. Die Funktion gibt einen Zeiger auf das erste Element der Liste zurück. Mit diesem Zeiger können Sie direkt auf die in der Liste gespeicherten Elemente zugreifen und diese ä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 Werts in einer Liste finden möchten, verwenden Sie ` indexOf()` oder ` lastIndexOf()`. Ersteres sucht vorwärts, beginnend an einer angegebenen Indexposition, letzteres sucht rückwärts. Beide geben den Index des übereinstimmenden Elements zurück, falls eines gefunden wurde; andernfalls geben sie -1 zurück. Zum Beispiel:

qsizetype i = list.indexOf("Harumi");
if (i != -1)
    cout << "First occurrence of Harumi is at position " << i << endl;

Wenn Sie lediglich prüfen möchten, ob eine Liste einen bestimmten Wert enthält, verwenden Sie ` contains()`. Wenn Sie herausfinden möchten, wie oft ein bestimmter Wert in der Liste vorkommt, verwenden Sie ` count()`.

QList stellt folgende Grundfunktionen zum Hinzufügen, Verschieben und Entfernen von Elementen bereit: ` insert()`, ` replace()`, ` remove()`, ` prepend()` und ` append()`. Mit Ausnahme von ` append()`, ` prepend()` und ` replace()` können diese Funktionen bei großen Listen langsam sein (lineare Laufzeit), da sie erfordern, dass viele Elemente in der Liste im Speicher um eine Position verschoben werden. Wenn Sie eine Containerklasse benötigen, die ein schnelles Einfügen und Entfernen in der Mitte ermöglicht, verwenden Sie stattdessen std::list.

Im Gegensatz zu einfachen C++-Arrays kann die Größe von QLists jederzeit durch den Aufruf von ` resize()` angepasst werden. Ist die neue Größe größer 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 vorab zuweist, wie die tatsächlichen Daten benötigen.

Wenn Sie eine QList schrittweise aufbauen und im Voraus ungefähr wissen, wie viele Elemente sie enthalten wird, können Sie ` reserve()` aufrufen und QList anweisen, eine bestimmte Menge an Speicher vorab zuzuweisen. Sie können auch ` capacity()` aufrufen, um herauszufinden, wie viel Speicher die QList tatsächlich zugewiesen hat.

Beachten Sie, dass die Verwendung von Nicht-const-Operatoren und -Funktionen dazu führen kann, dass die QList aufgrund impliziter Freigabe eine tiefe Kopie der Daten erstellt.

Der Werttyp von `QList` muss ein zuweisbarer Datentyp sein. Dies deckt die meisten gängigen Datentypen ab, aber der Compiler lässt es beispielsweise nicht zu, dass Sie einen „ QWidget “ als Wert speichern; speichern Sie stattdessen einen „ QWidget *“. Einige Funktionen haben zusätzliche Anforderungen; beispielsweise erwarten „ indexOf()“ und „ lastIndexOf()“, dass der Werttyp „ operator==() “ unterstützt. Diese Anforderungen sind für jede Funktion einzeln dokumentiert.

Informationen zum Durchlaufen der Elemente finden Sie unter „Iterating over Containers“. Informationen zur Verwendung von `QList` mit Funktionen aus dem Header „ <algorithm> “, wie beispielsweise ` std::sort()`, ` std::reverse()` und ` std::count_if()`, finden Sie unter „Qt-Container und std-Algorithmen“. Informationen zur Verwendung von `QList` mit Qt-eigenen generischen Algorithmen wie ` qJoin()` und ` qDeleteAll()` finden Sie unter „ <QtAlgorithms> “.

Neben QList bietet Qt auch „ QVarLengthArray “ an, eine sehr low-level Klasse mit geringem Funktionsumfang, die auf Geschwindigkeit optimiert ist.

Weitere Informationen zur Verwendung von Qt-Containern

Eine ausführliche Erörterung, in der Qt-Container untereinander sowie mit STL-Containern verglichen werden, finden Sie unter „Die Qt-Container verstehen“.

Maximale Größe und Speicherengpässe

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, wobei die typische Obergrenze bei 2^63 Bytes liegt. Der tatsächliche Wert hängt zudem vom Overhead ab, der für die Verwaltung des Datenblocks erforderlich ist. 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, entspricht dieser maximalen Größe geteilt durch die Größe eines gespeicherten Elements.

Wenn die Speicherzuweisung fehlschlägt, verwendet QList das Makro „ Q_CHECK_PTR “, das eine „ std::bad_alloc “-Ausnahme auslöst, sofern die Anwendung mit Ausnahmeunterstützung kompiliert wird. Sind Ausnahmen deaktiviert, gilt ein Speicherengpass als undefiniertes Verhalten.

Beachten Sie, dass das Betriebssystem Anwendungen, die viel zugewiesenen Speicher belegen – insbesondere große, zusammenhängende Blöcke –, möglicherweise weitere Beschränkungen auferlegt. Solche Überlegungen, die Konfiguration dieses Verhaltens oder etwaige Abhilfemaßnahmen liegen außerhalb des Geltungsbereichs der Qt-API.

Dokumentation zu Mitgliedstypen

[alias] QList::ConstIterator

Synonym im Qt-Stil für „ QList::const_iterator “.

[alias] QList::Iterator

Synonym im Qt-Stil für „ QList::iterator “.

[alias] QList::const_pointer

Zur Gewährleistung der STL-Kompatibilität.

[alias] QList::const_reference

Zur Gewährleistung der STL-Kompatibilität vorgesehen.

[alias] QList::const_reverse_iterator

Der Typedef `QList::const_reverse_iterator` stellt einen konstanen Rückwärtsiterator im STL-Stil für ` QList` bereit.

Warnung: Iteratoren auf implizit gemeinsam genutzten Containern funktionieren nicht genau wie STL-Iteratoren. Sie sollten es vermeiden, einen Container zu kopieren, solange Iteratoren auf diesem Container aktiv sind. Weitere Informationen finden Sie unter „Problem mit Iteratoren bei impliziter gemeinsamen Nutzung“.

Warnung: Iteratoren werden ungültig, wenn „ QList “ geändert wird. Gehen Sie davon aus, dass alle Iteratoren standardmäßig ungültig sind. Ausnahmen von dieser Regel sind ausdrücklich dokumentiert.

Siehe auch „ QList::rbegin()“, „ QList::rend()“, „ QList::reverse_iterator “ und „ QList::const_iterator “.

[alias] QList::difference_type

Zur Gewährleistung der STL-Kompatibilität vorgesehen.

[alias] QList::parameter_type

[alias] QList::pointer

Zur Gewährleistung der STL-Kompatibilität vorgesehen.

[alias] QList::reference

Zur Gewährleistung der STL-Kompatibilität vorgesehen.

[alias] QList::reverse_iterator

Der Typedef `QList::reverse_iterator` stellt einen nicht-konstanten Reverse-Iterator im STL-Stil für ` QList` bereit.

Warnung: Iteratoren auf implizit gemeinsam genutzten Containern funktionieren nicht genau wie STL-Iteratoren. Sie sollten es vermeiden, einen Container zu kopieren, solange Iteratoren auf diesem Container aktiv sind. Weitere Informationen finden Sie unter „Problem mit Iteratoren bei impliziter gemeinsamen Nutzung“.

Warnung: Iteratoren werden ungültig, wenn ` QList ` geändert wird. Gehen Sie davon aus, dass alle Iteratoren standardmäßig ungültig sind. Ausnahmen von dieser Regel sind ausdrücklich dokumentiert.

Siehe auch „ QList::rbegin()“, „ QList::rend()“, „ QList::const_reverse_iterator “ und „ QList::iterator “.

[alias] QList::rvalue_ref

[alias] QList::size_type

Zur Gewährleistung der STL-Kompatibilität vorgesehen.

[alias] QList::value_type

Zur Gewährleistung der STL-Kompatibilität bereitgestellt.

Dokumentation der Member-Funktionen

[constexpr noexcept default] QList::QList()

Erstellt eine leere Liste.

Siehe auch ` resize()`.

[explicit] QList::QList(qsizetype size)

Erstellt eine Liste mit einer anfänglichen Größe von size Elementen.

Die Elemente werden mit einem standardmäßig konstruierten Wert initialisiert.

Siehe auch ` resize()`.

QList::QList(std::initializer_list<T> args)

Erstellt eine Liste aus der durch ` args` angegebenen `std::initializer_list`.

template <typename InputIterator, QList<T>::if_input_iterator<InputIterator> = true> QList::QList(InputIterator first, InputIterator last)

Erstellt eine Liste mit dem Inhalt des Iteratorbereichs [first, last).

Der Werttyp von InputIterator muss in T konvertierbar sein.

Einschränkungen

Nimmt nur dann an der Überladungsauflösung teil, wenn InputIterator die Anforderungen eines ` LegacyInputIterator` erfüllt.

QList::QList(qsizetype size, QList<T>::parameter_type value)

Erstellt eine Liste mit einer anfänglichen Größe von size Elementen. Jedes Element wird mit value initialisiert.

Siehe auch resize() und fill().

[since 6.8] QList::QList(qsizetype size, Qt::Initialization)

Erstellt eine Liste mit einer anfänglichen Größe von size Elementen.

QList versucht, die Elemente nicht zu initialisieren.

Genauer gesagt:

  • Wenn „ T “ über einen Konstruktor verfügt, der „ Qt::Uninitialized “ akzeptiert, wird dieser Konstruktor zur Initialisierung der Elemente verwendet;
  • Andernfalls wird jedes Element standardmäßig initialisiert. Bei trivial initialisierbaren Typen (wie z. B. ` int`, ` float` usw.) entspricht dies einer Nicht-Initialisierung.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch ` resizeForOverwrite()`.

[implicit] QList::QList(const QList<T> &other)

Erstellt eine Kopie von ` other`.

Dieser Vorgang dauert eine konstante Zeit, da QList implizit gemeinsam genutzt wird. Dadurch ist die Rückgabe einer QList aus einer Funktion sehr schnell. Wird eine gemeinsam genutzte Instanz geändert, wird sie kopiert (Copy-on-Write), was lineare Zeit in Anspruch nimmt.

Siehe auch ` operator=()`.

[implicit] QList::QList(QList<T> &&other)

Erstellt eine QList-Instanz und sorgt dafür, dass diese auf dasselbe Objekt verweist, auf das zuvor other verwiesen hat.

[implicit] QList::~QList()

Löscht 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 entspricht dem Aufruf von `resize(size() + 1)` und der Zuweisung von ` value ` an das neue letzte Element der Liste.

Dieser Vorgang ist relativ schnell, da ` QList ` in der Regel mehr Speicher zuweist als nötig, sodass die Liste wachsen kann, ohne dass jedes Mal die gesamte Liste neu zugewiesen werden muss.

Siehe auch „ operator<<()“, „ prepend()“ und „ insert()“.

[since 6.0] void QList::append(QList<T> &&value)

Verschiebt die Elemente der Liste „ value “ an das Ende dieser Liste.

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch ` operator<<()` und ` operator+=()`.

void QList::append(QList<T>::rvalue_ref value)

Beispiel:

QList<QString> list;
list.append("one");
list.append("two");
QString three = "three";
list.append(std::move(three));
// list: ["one", "two", "three"]
// three: ""

Dies ist eine überladene Funktion.

void QList::append(const QList<T> &value)

Fügt die Elemente der Liste „ value “ an diese Liste an.

Dies ist eine überladene Funktion.

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 entspricht der Anzahl der Elemente in ` l`.

Diese Funktion reserviert nur dann Speicher, wenn die Anzahl der Elemente in ` l ` die Kapazität dieser Liste überschreitet 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 entspricht der Anzahl der Elemente im Bereich [first, last).

Diese Funktion reserviert nur dann Speicher, wenn die Anzahl der Elemente im Bereich die Kapazität dieser Liste überschreitet oder diese Liste gemeinsam genutzt wird.

Hinweis: Das Verhalten ist undefiniert, wenn eines der Argumente ein Iterator auf *this ist.

Einschränkungen

Nimmt nur dann an der Überladungsauflösung teil, wenn InputIterator die Anforderungen eines LegacyInputIterator erfüllt.

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 entspricht dann ` n`.

Diese Funktion reserviert nur dann Speicher, 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 dient der STL-Kompatibilität. Sie entspricht der Funktion „ 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 der Liste zeigt.

Warnung: Der zurückgegebene Iterator wird bei Entkopplung oder bei einer Änderung von ` QList ` ungültig.

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 dass eine Neuzuweisung erzwungen wird.

Der einzige Zweck dieser Funktion besteht darin, eine Möglichkeit zur Feinabstimmung der Speichernutzung von „ QList “ bereitzustellen. Im Allgemeinen werden Sie diese Funktion so gut wie nie aufrufen müssen. Wenn Sie wissen möchten, wie viele Elemente sich in der Liste befinden, rufen Sie „ size()“ auf.

Hinweis: Eine statisch zugewiesene Liste meldet eine Kapazität von 0, auch wenn sie nicht leer ist.

Warnung: Die Positiondes freien Speicherplatzes im zugewiesenen Speicherblock ist undefiniert. Mit anderen Worten: Sie sollten nicht davon ausgehen, dass sich der freie Speicherplatz 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 konstanten Iterator im STL-Stil zurück, der auf das erste Element der Liste verweist.

Warnung: Der zurückgegebene Iterator wird bei Trennung oder bei Änderung von ` QList ` ungültig.

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

[noexcept] QList<T>::const_iterator QList::cend() const

Gibt einen konstanen Iterator im STL-Stil zurück, der direkt auf das Element nach dem letzten Element 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 der Wert von ` capacity()` erhalten. Verwenden Sie ` squeeze()`, um überschüssige Kapazität abzubauen.

Hinweis: In Qt-Versionen vor 5.7 (für ` QVector`) und vor 6.0 (für ` QList`) gab diese Funktion den von der Liste belegten Speicher frei, anstatt die Kapazität beizubehalten.

Siehe auch resize() und squeeze().

[noexcept] QList<T>::const_iterator QList::constBegin() const

Gibt einen konstanten Iterator im STL-Stil zurück, der auf das erste Element der Liste zeigt.

Warnung: Der zurückgegebene Iterator wird ungültig, wenn die Verbindung getrennt wird oder wenn die ` QList ` geändert wird.

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

[noexcept] QList<T>::const_pointer QList::constData() const

Gibt einen const-Zeiger auf die in der Liste gespeicherten Daten zurück. Der Zeiger kann verwendet werden, um auf die Elemente in der Liste zuzugreifen.

Warnung: Der Zeiger wird ungültig, wenn die Liste „ QList “ getrennt oder 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 konstanten Iterator im STL-Stil zurück, der direkt auf das Element nach dem letzten Element der Liste zeigt.

Warnung: Der zurückgegebene Iterator wird bei einer Entkopplung oder bei einer Änderung der ` QList ` ungültig.

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

[noexcept] const T &QList::constFirst() const

Gibt eine konstante Referenz auf das erste Element der Liste zurück. Diese Funktion setzt voraus, dass die Liste nicht leer ist.

Siehe auch constLast(), isEmpty() und first().

[noexcept] const T &QList::constLast() const

Gibt eine konstante Referenz auf das letzte Element der Liste zurück. Diese Funktion setzt voraus, 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 Werttyp über eine Implementierung von ` operator==()` verfügt.

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 Werttyp über eine Implementierung von ` operator==()` verfügt.

Siehe auch „ contains()“ und „ indexOf()“.

[constexpr noexcept] qsizetype QList::count() const

Entspricht „ size()“.

Dies ist eine überladene Funktion.

[noexcept] QList<T>::const_reverse_iterator QList::crbegin() const

Gibt einen konstanten Reverse-Iterator im STL-Stil zurück, der auf das erste Element der Liste in umgekehrter Reihenfolge verweist.

Warnung: Der zurückgegebene Iterator wird bei Entkopplung oder bei einer Änderung der „ QList “ ungültig.

Siehe auch „ begin()“, „ rbegin()“ und „ rend()“.

[noexcept] QList<T>::const_reverse_iterator QList::crend() const

Gibt einen konstanten Reverse-Iterator im STL-Stil zurück, der in umgekehrter Reihenfolge direkt auf das Element nach dem letzten Element der Liste zeigt.

Warnung: Der zurückgegebene Iterator wird beim Trennen oder bei einer Änderung des „ QList “ ungültig.

Siehe auch „ end()“, „ rend()“ und „ rbegin()“.

QList<T>::pointer QList::data()

Gibt einen Zeiger auf die in der Liste gespeicherten Daten zurück. Mit diesem Zeiger kann auf die Elemente der Liste zugegriffen und diese geändert 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 beim Trennen der Verbindung oder bei einer Änderung des „ QList “ ungültig.

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.

void QList::detach()

Stellt sicher, dass die Daten dieser Instanz QList nicht mehr mit anderen Instanzen geteilt werden.

template <typename... Args> QList<T>::iterator QList::emplace(qsizetype i, Args &&... args)

Erweitert den Container, indem ein neues Element an der Position i eingefügt wird. Dieses neue Element wird an Ort und Stelle unter Verwendung von args als Argumente für seine Erstellung generiert.

Gibt einen Iterator auf das neue Element zurück.

Beispiel:

QList<QString> list{"a", "ccc"};
list.emplace(1, 2, 'b');
// list: ["a", "bb", "ccc"]

Hinweis: Es ist gewährleistet, dass das Element zunächst an Ort und Stelle am Anfang erstellt wird; danach kann es jedoch 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)

Erstellt ein neues Element vor dem Element, auf das der Iterator before zeigt. Dieses neue Element wird an Ort und Stelle unter Verwendung von args als Argumente für seine Erstellung konstruiert.

Gibt einen Iterator auf das neue Element zurück.

Dies ist eine überladene Funktion.

template <typename... Args> QList<T>::reference QList::emplaceBack(Args &&... args)

template <typename... Args> QList<T>::reference QList::emplace_back(Args &&... args)

Fügt am Ende des Containers ein neues Element hinzu. Dieses neue Element wird an Ort und Stelle unter Verwendung von „ args “ als Argumente für seine Erstellung generiert.

Gibt eine Referenz auf das neue Element zurück.

Beispiel:

QList<QString> list{"one", "two"};
list.emplaceBack(3, 'a');
qDebug() << list;
// Liste: ["one", "two", "aaa"]

Es ist auch möglich, über die zurückgegebene Referenz auf ein neu erstelltes Objekt zuzugreifen:

QList<QString> list;
auto &ref = list.emplaceBack();
ref = "one";
// list: ["one"]

Dies entspricht list.emplace(list.size(), args).

Siehe auch ` emplace`.

[noexcept] bool QList::empty() const

Diese Funktion dient der STL-Kompatibilität. Sie entspricht der Funktion ` 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 Element nach dem letzten Element der Liste zeigt.

Warnung: Der zurückgegebene Iterator wird bei einer Trennung oder bei einer Änderung von ` QList ` ungültig.

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 letztes Element 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 ` verweist, aus der Liste und gibt einen Iterator auf das nächste Element in der Liste zurück (dies kann ` end()` sein).

Durch das Entfernen des Elements bleibt die Kapazität der Liste erhalten, und die Menge des zugewiesenen Speichers wird nicht verringert. Um überschüssige Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie ` squeeze()` auf.

Hinweis: Wenn „ QList “ nicht implizit gemeinsam genutzt wird, 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)

Entfernt alle Elemente von begin bis einschließlich (jedoch nicht einschließlich) end. Gibt einen Iterator auf dasselbe Element zurück, auf das end vor dem Aufruf verwiesen hat.

Das Entfernen von Elementen bewahrt die Kapazität der Liste und verringert nicht die Menge des zugewiesenen Speichers. Um überschüssige Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie squeeze() auf.

Hinweis: Wenn QList nicht implizit gemeinsam genutzt wird, macht diese Funktion nur Iteratoren an oder nach der angegebenen Position ungültig.

Dies ist eine überladene Funktion.

QList<T> &QList::fill(QList<T>::parameter_type value, qsizetype size = -1)

Weist allen Elementen in der Liste den Wert „ value “ zu. Wenn „ size “ ungleich -1 (Standardwert) ist, wird die Liste zuvor 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 eine Referenz auf das erste Element der Liste zurück. Diese Funktion setzt voraus, 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 dient der STL-Kompatibilität. Sie entspricht der Funktion „ 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 die Suche ab der Indexposition „ from “ vorwärts erfolgt. Gibt -1 zurück, wenn kein Eintrag gefunden wurde.

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

Diese Funktion setzt voraus, dass der Werttyp über eine Implementierung von ` operator==()` verfügt.

Siehe auch „ lastIndexOf()“ und „ contains()“.

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. Ist „ i “ gleich 0, wird der Wert am Anfang der Liste eingefügt. Ist „ i “ gleich „ size()“, wird der Wert am Ende der 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 Laufzeit), da alle Elemente an den Indizes i und darüber im Speicher um eine Position weiter verschoben werden müssen. Wenn Sie eine Containerklasse benötigen, die eine schnelle Funktion insert() bietet, verwenden Sie stattdessen std::list.

Siehe auch ` append()`, ` prepend()` und ` remove()`.

QList<T>::iterator QList::insert(QList<T>::const_iterator before, qsizetype count, QList<T>::parameter_type value)

Fügt count Kopien von value vor das 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(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)

Fügt „ value “ vor dem Element ein, auf das der Iterator „ before “ verweist. Gibt einen Iterator zurück, der auf das eingefügte Element verweist.

QList<T>::iterator QList::insert(qsizetype i, qsizetype count, QList<T>::parameter_type value)

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]

Dies ist eine überladene Funktion.

[constexpr 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 eine Referenz auf das letzte Element der Liste zurück. Diese Funktion setzt voraus, 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 Werts „ value “ in der Liste zurück, wobei die Suche rückwärts ab der Indexposition „ from “ erfolgt. Ist „ from “ gleich -1 (Standardwert), beginnt die Suche beim letzten Element. Gibt -1 zurück, wenn kein Element gefunden wurde.

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 setzt voraus, dass der Werttyp über eine Implementierung von ` operator==()` verfügt.

Siehe auch indexOf().

[constexpr noexcept] qsizetype QList::length() const

Wie unter size() und count() beschrieben.

Siehe auch size() und count().

[static constexpr, since 6.8] qsizetype QList::maxSize()

[constexpr noexcept, since 6.8] qsizetype QList::max_size() const

Sie gibt die maximale Anzahl an Elementen zurück, die die Liste theoretisch enthalten kann. In der Praxis kann diese Zahl jedoch deutlich geringer ausfallen, da sie durch den dem System zur Verfügung stehenden Speicher begrenzt ist.

Diese Funktionen wurden in Qt 6.8 eingeführt.

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 (Standardwert), werden alle Elemente nach pos einbezogen; andernfalls werden length Elemente (oder alle verbleibenden Elemente, falls weniger als length Elemente vorhanden sind) einbezogen.

void QList::move(qsizetype from, qsizetype to)

Verschiebt das Element an der Indexposition „ from “ an die Indexposition „ to “.

from Dabei müssen to und innerhalb des zulässigen Bereichs liegen.

Beispiel: Um das erste Element an das Ende der Liste zu verschieben:

QList<int> list = {1, 2, 3};
list.move(0, list.size() - 1);
qDebug() << list; // Prints "QList(2, 3, 1)"

[noexcept] void QList::pop_back()

Diese Funktion dient der STL-Kompatibilität. Sie entspricht der Funktion „ removeLast()“.

[noexcept] void QList::pop_front()

Diese Funktion dient der STL-Kompatibilität. Sie entspricht der Funktion „ removeFirst()“.

void QList::prepend(QList<T>::parameter_type value)

void QList::prepend(QList<T>::rvalue_ref value)

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 entspricht list.insert(0, value).

Normalerweise ist dieser Vorgang relativ schnell (amortisierte konstante Zeit). QList kann zusätzlichen Speicher am Anfang der Listendaten zuweisen und in diese Richtung wachsen, ohne bei jedem Vorgang die Daten neu zuzuweisen oder zu verschieben. Wenn Sie jedoch eine Containerklasse mit garantierter konstanter Zeit für das Einfügen am Anfang wünschen, verwenden Sie stattdessen std::list; andernfalls ist QList vorzuziehen.

Siehe auch append() und insert().

void QList::push_back(QList<T>::parameter_type value)

Diese Funktion dient der STL-Kompatibilität. Sie entspricht der Funktion `append(value)`.

void QList::push_back(QList<T>::rvalue_ref value)

Dies ist eine überladene Funktion.

void QList::push_front(QList<T>::parameter_type value)

void QList::push_front(QList<T>::rvalue_ref value)

Diese Funktion dient der STL-Kompatibilität. Sie entspricht der Funktion „prepend(value)“.

QList<T>::reverse_iterator QList::rbegin()

Gibt einen Reverse-Iterator im STL-Stil zurück, der auf das erste Element der Liste in umgekehrter Reihenfolge verweist.

Warnung: Der zurückgegebene Iterator wird bei Trennung oder bei einer Änderung des „ QList “ ungültig.

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 bei der Indexposition i.

Durch das Entfernen der Elemente bleibt die Kapazität der Liste erhalten, und die Menge des zugewiesenen Speichers wird nicht verringert. Um überschüssige Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie ` squeeze()` auf.

Hinweis: Wenn „ QList “ nicht implizit gemeinsam genutzt wird, 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 aus der Liste, die mit „ t “ übereinstimmen. Gibt die Anzahl der entfernten Elemente zurück, sofern vorhanden.

Durch das Entfernen von Elementen bleibt die Kapazität der Liste erhalten, und der belegte Speicher wird nicht reduziert. Um überschüssige 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. Entspricht

remove(i);

Durch das Entfernen des Elements bleibt die Kapazität der Liste erhalten, und die Menge des zugewiesenen Speichers wird nicht verringert. Um überschüssige Kapazität abzubauen und so viel Speicher wie möglich freizugeben, rufen Sie squeeze() auf.

Hinweis: Wenn ` QList ` nicht implizit gemeinsam genutzt wird, macht diese Funktion nur Iteratoren an oder nach der angegebenen Position ungültig.

Siehe auch ` remove()`.

[noexcept] void QList::removeFirst()

Entfernt das erste Element aus der Liste. Der Aufruf dieser Funktion entspricht dem Aufruf von `remove(0)`. Die Liste darf nicht leer sein. Wenn die Liste leer sein darf, rufen Sie vor dem Aufruf dieser Funktion ` isEmpty()` auf.

Beim Entfernen von Elementen bleibt die Kapazität der Liste erhalten, und die Menge des zugewiesenen Speichers wird nicht verringert. Um überschüssige 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 aus der Liste, für die das Prädikat „ pred “ den Wert „true“ zurückgibt. Gibt die Anzahl der entfernten Elemente zurück, sofern vorhanden.

Diese Funktion wurde in Qt 6.1 eingeführt.

Siehe auch ` removeAll()`.

[noexcept] void QList::removeLast()

Entfernt das letzte Element aus der Liste. Der Aufruf dieser Funktion entspricht dem Aufruf von `remove(size() - 1)`. Die Liste darf nicht leer sein. Wenn die Liste leer sein darf, rufen Sie vor dem Aufruf dieser Funktion ` isEmpty()` auf.

Durch das Entfernen von Elementen bleibt die Kapazität der Liste erhalten, und der belegte Speicher wird nicht verringert. Um überschüssige 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 aus der Liste, das mit „ t “ übereinstimmt. Gibt zurück, ob tatsächlich ein Element entfernt wurde.

Durch das Entfernen von Elementen bleibt die Kapazität der Liste erhalten, und die Menge des zugewiesenen Speichers wird nicht verringert. Um überschüssige 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 Reverse-Iterator im STL-Stil zurück, der in umgekehrter Reihenfolge direkt auf das Element nach dem letzten Element der Liste zeigt.

Warnung: Der zurückgegebene Iterator wird bei einer Trennung oder bei einer Änderung des „ QList “ ungültig.

Siehe auch „ end()“, „ crend()“ und „ rbegin()“.

[noexcept] QList<T>::const_reverse_iterator QList::rend() const

Dies ist eine überladene Funktion.

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::reserve(qsizetype size)

Versucht, Speicher für mindestens size Elemente zu reservieren.

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 anpassen, erzielen Sie wahrscheinlich auch eine bessere Leistung.

Wenn Sie sich nicht sicher sind, wie viel Speicherplatz benötigt wird, ist es in der Regel besser, eine Obergrenze von ` size` zu verwenden oder eine hohe Schätzung der wahrscheinlichsten Größe, falls eine strenge Obergrenze deutlich größer wäre als dieser Wert. Ist ` size ` zu niedrig angesetzt, wächst die Liste bei Bedarf, sobald die reservierte Größe überschritten wird. Dies kann zu einer größeren Speicherzuweisung führen, als es Ihre beste Überschätzung vorgesehen hätte, und verlangsamt den Vorgang, der dies auslöst.

Warnung: reserve () reserviert Speicher, ändert jedoch nicht die Größe der Liste. Der Zugriff auf Daten jenseits des aktuellen Endes der Liste führt zu undefiniertem Verhalten. Wenn Sie auf Speicher jenseits des aktuellen Endes der Liste zugreifen müssen, verwenden Sie resize().

Siehe auch ` squeeze()`, ` capacity()` und ` resize()`.

[since 6.0] void QList::resize(qsizetype size)

[since 6.0] void QList::resize(qsizetype size, QList<T>::parameter_type c)

Legt die Größe der Liste auf ` size` fest. Ist ` size ` größer als die aktuelle Größe, werden Elemente am Ende hinzugefügt; die neuen Elemente werden entweder mit einem Standardkonstruktionswert 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 die Funktion ` capacity()` erhalten. Verwenden Sie ` squeeze()`, um überschüssige Kapazität abzubauen.

Hinweis: In Qt-Versionen vor 5.7 (für ` QVector`; bei ` QList ` fehlte die Funktion ` resize()` bis zur Version 6.0) gab diese Funktion den von der Liste belegten Speicher frei, anstatt die Kapazität beizubehalten.

Diese Funktionen wurden in Qt 6.0 eingeführt.

Siehe auch size().

[since 6.8] void QList::resizeForOverwrite(qsizetype size)

Legt die Größe der Liste auf „ size “ fest. Ist „ size “ kleiner als die aktuelle Größe, werden Elemente vom Ende entfernt. Ist „ size “ größer als die aktuelle Größe, werden Elemente am Ende hinzugefügt; „ QList “ versucht, diese neuen Elemente nicht zu initialisieren.

Im Einzelnen:

  • Wenn T über einen Konstruktor verfügt, der Qt::Uninitialized akzeptiert, wird dieser Konstruktor zur Initialisierung der Elemente verwendet;
  • ansonsten wird jedes Element standardmäßig initialisiert. Bei trivial konstruierbaren Typen (wie z. B. „ int “, „ float “ usw.) entspricht dies einer Nichtinitialisierung.

Diese Funktion wurde in Qt 6.8 eingeführt.

void QList::shrink_to_fit()

Diese Funktion dient der STL-Kompatibilität. Sie entspricht der Funktion „ squeeze()“.

[constexpr 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

Gibt eine Teilliste zurück, die die Elemente dieser Liste enthält, beginnend bei der Position pos bis zum Ende der Liste.

Hinweis: Das Verhalten ist undefiniert, wenn pos < 0 oder pos > size().

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch „ first()“ und „ last()“.

void QList::squeeze()

Gibt den Speicher frei, der nicht zur Speicherung der Elemente benötigt wird.

Der einzige Zweck dieser Funktion besteht darin, eine Möglichkeit zur Feinabstimmung der Speichernutzung von „ QList “ zu bieten. Im Allgemeinen werden Sie diese Funktion so gut wie nie 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 mit „ value “ übereinstimmt; 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 niemals fehl.

void QList::swapItemsAt(qsizetype i, qsizetype j)

Tausche das Element an der Indexposition i mit dem Element an der Indexposition j aus. Diese Funktion setzt voraus, dass sowohl i als auch j mindestens 0, aber kleiner als size() sind. Um Fehler zu vermeiden, prüfe, 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.

Entspricht

T t = at(i);
remove(i);
return t;

Hinweis: Wenn „ QList “ nicht implizit gemeinsam genutzt wird, 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 aus der Liste und gibt es zurück. Diese Funktion setzt voraus, dass die Liste nicht leer ist. Um einen Fehler zu vermeiden, rufen Sie vor dem Aufruf dieser Funktion die Funktion „ isEmpty()“ auf.

Siehe auch „ takeLast()“ und „ removeFirst()“.

QList<T>::value_type QList::takeLast()

Entfernt das letzte Element aus der Liste und gibt es zurück. Diese Funktion setzt voraus, dass die Liste nicht leer ist. Um Fehler zu vermeiden, rufen Sie vor dem Aufruf dieser Funktion „ isEmpty()“ auf.

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.

Liegt der Index i außerhalb des zulässigen Bereichs, gibt die Funktion einen standardkonstruierten Wert zurück. Wenn Sie sicher sind, dass i innerhalb des zulässigen Bereichs 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

Liegt der Index „ i “ außerhalb des zulässigen Bereichs, gibt die Funktion „ defaultValue “ zurück.

Dies ist eine überladene Funktion.

bool QList::operator!=(const QList<T> &other) const

Gibt „ true “ zurück, wenn „ other “ nicht mit dieser Liste übereinstimmt; andernfalls wird „ false “ zurückgegeben.

Zwei Listen gelten als gleich, wenn sie dieselben Werte in derselben Reihenfolge enthalten.

Diese Funktion setzt voraus, dass der Werttyp über eine Implementierung von ` operator==()` verfügt.

Siehe auch ` operator==()`.

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 dieser Liste sowie anschließend alle Elemente der Liste „ other “ enthält.

Siehe auch „ operator+=()“.

QList<T> &QList::operator+=(const QList<T> &other)

Fügt die Elemente der Liste „ other “ an diese Liste an und gibt eine Referenz 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)

Fügt „ value “ zur Liste hinzu.

Dies ist eine überladene Funktion.

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 ist als „ other “; andernfalls wird „ false “ zurückgegeben.

Diese Funktion setzt voraus, dass der Werttyp über eine Implementierung von ` operator<()` verfügt.

QList<T> &QList::operator<<(QList<T>::parameter_type value)

Fügt „ value “ zur Liste hinzu und gibt eine Referenz auf diese Liste zurück.

Siehe auch „ append()“ und „ operator+=()“.

QList<T> &QList::operator<<(const QList<T> &other)

Fügt „ other “ zur Liste hinzu und gibt eine Referenz 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 Werttyp über eine Implementierung von ` operator<()` verfügt.

[implicit] QList<T> &QList::operator=(QList<T> &&other)

Weist „ other “ dieser „ QList “-Instanz zu.

[implicit] QList<T> &QList::operator=(const QList<T> &other)

Fügt „ other “ zu dieser Liste hinzu und gibt einen Verweis auf diese Liste zurück.

QList<T> &QList::operator=(std::initializer_list<T> args)

Weist dieser QList -Instanz die Werte aus der Sammlung „ args “ 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 gelten als gleich, wenn sie dieselben Werte in derselben Reihenfolge enthalten.

Diese Funktion setzt voraus, dass der Werttyp über eine Implementierung von ` operator==()` verfügt.

Siehe auch ` operator!=()`.

bool QList::operator>(const QList<T> &other) const

Gibt „ true “ zurück, wenn diese Liste lexikalisch größer ist als „ other “; andernfalls wird „ false “ zurückgegeben.

Diese Funktion setzt voraus, dass der Werttyp über eine Implementierung von ` operator<()` verfügt.

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.

Diese Funktion setzt voraus, dass der Werttyp über eine Implementierung von ` operator<()` verfügt.

QList<T>::reference QList::operator[](qsizetype i)

Gibt das Element an der Indexposition i als veränderbare Referenz zurück.

i i muss eine gültige Indexposition in der Liste sein (d. h., 0 <= < ()). size

Beachten Sie, dass die Verwendung von Nicht-const-Operatoren dazu führen kann, dass „ QList “ eine tiefe Kopie erstellt.

Siehe auch ` at()` und ` value()`.

[noexcept] QList<T>::const_reference QList::operator[](qsizetype i) const

Genau wie unter (i).

Dies ist eine überladene Funktion.

Verwandte Nicht-Mitglieder

[since 6.1] template <typename T, typename AT> qsizetype erase(QList<T> &list, const AT &t)

Entfernt alle Elemente aus der Liste „ list “, die mit „ t “ übereinstimmen. Gibt die Anzahl der entfernten Elemente zurück, sofern vorhanden.

Hinweis: Im Gegensatz zu ` QList::removeAll` darf ` t ` keine Referenz auf ein Element innerhalb von ` list` sein. Wenn Sie nicht sicher sein können, dass dies nicht der Fall ist, erstellen 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 aus der Liste „ list “, für die das Prädikat „ pred “ den Wert „true“ zurückgibt. Gibt die Anzahl der entfernten Elemente zurück, sofern 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)) gleich true ist.

template <typename T> QDataStream &operator<<(QDataStream &out, const QList<T> &list)

Schreibt die Liste „ list “ in den Stream „ out “.

Diese Funktion setzt voraus, dass der Werttyp die Schnittstelle ` operator<<()` implementiert.

Siehe auch Format der QDataStream-Operatoren.

[since 6.9] auto operator<=>(const QList<T> &lhs, const QList<T> &rhs)

Vergleicht den Inhalt von lhs und rhs lexikografisch. Gibt das Ergebnis des stärksten anwendbaren Kategorietyps zurück, d. h. decltype(lhs[0] <=> rhs[0]), wenn operator<=>() für den Typ T verfügbar ist; andernfalls std::weak_ordering.

Hinweis: Dieser Operator ist nur im C++20-Modus verfügbar und nur dann, wenn der zugrunde liegende Typ „ T “ das Konzept „ std::three_way_comparable “ implementiert oder „ operator<() “ bereitstellt.

Diese Funktion wurde in Qt 6.9 eingeführt.

template <typename T> QDataStream &operator>>(QDataStream &in, QList<T> &list)

Liest eine Liste aus dem Stream „ in “ in „ list “.

Diese Funktion setzt voraus, dass der Werttyp operator>>() implementiert.

Siehe auch Format der QDataStream-Operatoren.

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