QList Class

template <typename T> class QList

Die 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:
16 Typen

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

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()
(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<int> integerList;
QList<QString> stringList;

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:

QList<QString> list(200);

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:

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

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().

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 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:

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

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, der Qt::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:

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

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, der Qt::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.

Siehe auch at() und value().

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