std:: forward_list
|
Definiert im Header
<forward_list>
|
||
|
template
<
class
T,
|
(1) | (seit C++11) |
|
namespace
pmr
{
template
<
class
T
>
|
(2) | (seit C++17) |
std::forward_list
ist ein Container, der schnelles Einfügen und Entfernen von Elementen an beliebiger Stelle im Container unterstützt. Schneller wahlfreier Zugriff wird nicht unterstützt. Es ist als einfach verkettete Liste implementiert. Im Vergleich zu
std::list
bietet dieser Container eine platzsparendere Speicherung, wenn bidirektionale Iteration nicht benötigt wird.
Das Hinzufügen, Entfernen und Verschieben von Elementen innerhalb der Liste oder über mehrere Listen hinweg macht Iteratoren, die derzeit auf andere Elemente in der Liste verweisen, nicht ungültig. Allerdings wird ein Iterator oder eine Referenz, die auf ein Element verweist, ungültig, wenn das entsprechende Element (mittels erase_after ) aus der Liste entfernt wird.
std::forward_list
erfüllt die Anforderungen von
Container
(mit Ausnahme der
size
-Memberfunktion und dass die Komplexität von
operator==
immer linear ist),
AllocatorAwareContainer
und
SequenceContainer
.
Alle Memberfunktionen von
std::forward_list
sind
constexpr
: Es ist möglich,
std::forward_list
-Objekte in der Auswertung eines konstanten Ausdrucks zu erstellen und zu verwenden.
Allerdings können
|
(since C++26) |
Inhaltsverzeichnis |
Template-Parameter
| T | - |
Der Typ der Elemente.
|
||||||||||||
| Allocator | - |
Ein Allokator, der zur Beschaffung/Freigabe von Speicher und zur Konstruktion/Destruktion der Elemente in diesem Speicher verwendet wird. Der Typ muss die Anforderungen von
Allocator
erfüllen.
Das Verhalten ist undefiniert
(bis C++20)
Das Programm ist fehlerhaft
(seit C++20)
wenn
Allocator::value_type
nicht identisch mit
T
ist.
|
Mitgliedertypen
| Mitgliedtyp | Definition |
value_type
|
T
|
allocator_type
|
Allocator
|
size_type
|
Vorzeichenloser Ganzzahltyp (üblicherweise std::size_t ) |
difference_type
|
Vorzeichenbehafteter Ganzzahltyp (üblicherweise std::ptrdiff_t ) |
reference
|
value_type & |
const_reference
|
const value_type & |
pointer
|
std:: allocator_traits < Allocator > :: pointer |
const_pointer
|
std:: allocator_traits < Allocator > :: const_pointer |
iterator
|
LegacyForwardIterator
und
ConstexprIterator
(seit C++26)
für
value_type
|
const_iterator
|
LegacyForwardIterator und ConstexprIterator (seit C++26) für const value_type |
Memberfunktionen
konstruiert die
forward_list
(öffentliche Elementfunktion) |
|
zerstört die
forward_list
(öffentliche Member-Funktion) |
|
|
weist dem Container Werte zu
(öffentliche Elementfunktion) |
|
|
weist dem Container Werte zu
(öffentliche Elementfunktion) |
|
|
(C++23)
|
weist dem Container einen Wertebereich zu
(öffentliche Elementfunktion) |
|
gibt den zugeordneten Allokator zurück
(öffentliche Elementfunktion) |
|
Elementzugriff |
|
|
Zugriff auf das erste Element
(öffentliche Elementfunktion) |
|
Iteratoren |
|
|
gibt einen Iterator auf das Element vor dem Anfang zurück
(öffentliche Elementfunktion) |
|
|
gibt einen Iterator zum Anfang zurück
(public member function) |
|
|
gibt einen Iterator zum Ende zurück
(öffentliche Elementfunktion) |
|
Kapazität |
|
|
prüft, ob der Container leer ist
(öffentliche Elementfunktion) |
|
|
gibt die maximal mögliche Anzahl von Elementen zurück
(öffentliche Elementfunktion) |
|
Modifikatoren |
|
|
löscht den Inhalt
(öffentliche Elementfunktion) |
|
|
fügt Elemente nach einem Element ein
(öffentliche Elementfunktion) |
|
|
Konstruiert Elemente direkt nach einem Element
(öffentliche Elementfunktion) |
|
|
(C++23)
|
fügt eine Reihe von Elementen nach einem Element ein
(öffentliche Elementfunktion) |
|
löscht ein Element nach einem Element
(öffentliche Elementfunktion) |
|
|
fügt ein Element am Anfang ein
(öffentliche Elementfunktion) |
|
|
Konstruiert ein Element direkt am Anfang
(öffentliche Elementfunktion) |
|
|
(C++23)
|
fügt eine Reihe von Elementen am Anfang hinzu
(öffentliche Elementfunktion) |
|
entfernt das erste Element
(öffentliche Elementfunktion) |
|
|
ändert die Anzahl der gespeicherten Elemente
(öffentliche Elementfunktion) |
|
|
tauscht die Inhalte aus
(öffentliche Elementfunktion) |
|
Operationen |
|
|
vereinigt zwei sortierte Listen
(öffentliche Elementfunktion) |
|
überträgt Elemente aus einem anderen
forward_list
(öffentliche Elementfunktion) |
|
|
entfernt Elemente, die bestimmte Kriterien erfüllen
(öffentliche Elementfunktion) |
|
|
kehrt die Reihenfolge der Elemente um
(öffentliche Elementfunktion) |
|
|
Entfernt aufeinanderfolgende doppelte Elemente
(öffentliche Elementfunktion) |
|
|
sortiert die Elemente
(öffentliche Elementfunktion) |
|
Nicht-Member-Funktionen
|
(C++11)
(C++11)
(entfernt in C++20)
(C++11)
(entfernt in C++20)
(C++11)
(entfernt in C++20)
(C++11)
(entfernt in C++20)
(C++11)
(entfernt in C++20)
(C++20)
|
vergleicht die Werte von zwei
forward_list
s lexikographisch
(Funktions-Template) |
|
(C++11)
|
spezialisiert den
std::swap
Algorithmus
(Funktions-Template) |
|
löscht alle Elemente, die bestimmte Kriterien erfüllen
(Funktions-Template) |
Deduktionsleitfäden |
(seit C++17) |
Hinweise
| Feature-Test Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Ranges-Konstruktion und -Einfügung für Container |
__cpp_lib_constexpr_forward_list
|
202502L
|
(C++26) |
constexpr
std::forward_list
|
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
doppelt verkettete Liste
(Klassentemplate) |