Freigeben über


forward_list-Klasse

Beschreibt ein Objekt, das eine Elementsequenz variabler Länge steuert. Die Sequenz wird als einfach verknüpfte Knotenliste gespeichert, die jeweils einen Member vom Typ Type enthält.

Syntax

template <class Type,
    class Allocator = allocator<Type>>
class forward_list

Parameter

Typ*
Das in der Doppelschlange zu speichernde forward_list-Element.

Verteiler
Das gespeicherte Zuordnungsobjekt, das Details zum Belegen und Freigeben des Arbeitsspeichers des forward_list-Elements kapselt. Dieser Parameter ist optional. Der Standardwert ist "allocator<Type>".

Hinweise

Ein forward_list Objekt reserviert und gibt Speicherplatz für die Sequenz frei, die es über ein gespeichertes Objekt der Klasse Allocator steuert, das auf der Allocator-Klasse basiert (allgemein bekannt als std::allocator). Weitere Informationen finden Sie unter Allocators. Ein Allocator-Objekt muss dieselbe externe Schnittstelle wie ein Objekt vom Typ allocatoraufweisen.

Hinweis

Das gespeicherte Zuweisungsobjekt wird nicht kopiert, wenn das Containerobjekt zugewiesen wird.

Iteratoren, Zeiger und Verweise werden möglicherweise ungültig, wenn Elemente ihrer gesteuerten Sequenz von forward_list gelöscht werden. Einfügungen und Komplizen, die für die kontrollierte Sequenz forward_list ausgeführt werden, werden durch iteratoren nicht ungültig.

Hinzufügungen zur gesteuerten Sequenz können bei Aufrufen von forward_list::insert_after auftreten, welche die einzige Memberfunktion ist, die den Konstruktor Type(const T&) aufruft. forward_list ruft möglicherweise auch Verschiebekonstruktoren auf. Wenn ein solcher Ausdruck eine Ausnahme auslöst, werden vom Containerobjekt keine neuen Elemente eingefügt, und die Ausnahme wird erneut ausgelöst. Daher verbleibt ein Objekt vom Typ forward_list in einem bekannten Zustand, wenn solche Ausnahmen auftreten.

Member

Konstruktoren

Name Beschreibung
forward_list Konstruiert ein Objekt vom Typ forward_list.

TypeDefs

Name Beschreibung
allocator_type Ein Typ, mit dem die Zuweisungsklasse für ein forward list-Objekt dargestellt wird.
const_iterator Ein Typ, der einen konstanten Iterator für die Vorwärtsliste bereitstellt.
const_pointer Ein Typ, der einen Zeiger auf ein const-Element in einer Vorwärtsliste bereitstellt.
const_reference Ein Typ, der einen Konstantenverweis auf einer Vorwärtsliste gespeichertes Element bereitstellt.
difference_type Ein Ganzzahltyp mit Vorzeichen, der dazu verwendet werden kann, die Anzahl von Elementen einer Vorwärtsliste in einen Bereich zwischen Elementen darzustellen, auf die von Iteratoren gezeigt wird.
iterator Ein Typ, der einen Iterator für die Vorwärtsliste bereitstellt.
pointer Ein Typ, der einen Zeiger auf ein Element in der Vorwärtsliste bereitstellt.
reference Ein Typ, der einen Verweis auf ein in der Vorwärtsliste gespeichertes Element bereitstellt.
size_type Ein Typ, der den Abstand ohne Vorzeichen zwischen zwei Elementen darstellt.
value_type Ein Typ, der den Typ des in einer Vorwärtsliste gespeicherten Elements darstellt.

Functions

Name Beschreibung
assign Löscht Elemente aus einer Vorwärtsliste und kopiert einen neuen Satz von Elementen an eine Zielvorwärtsliste.
before_begin Gibt einen Iterator zurück, der die Position vor dem ersten Element in einer Vorwärtsliste adressiert.
begin Gibt einen Iterator zurück, der das erste Element in einer Vorwärtsliste adressiert.
cbefore_begin Gibt einen konstanten Iterator zurück, der die Position vor dem ersten Element in einer Vorwärtsliste adressiert.
cbegin Gibt einen konstanten Iterator zurück, der das erste Element in einer Vorwärtsliste adressiert.
cend Gibt einen konstanten Iterator zurück, der den Speicherort adressiert, der dem letzten Element einer Vorwärtsliste nachfolgt.
clear Löscht alle Elemente einer Vorwärtsliste auf.
emplace_after Die Verschiebung erstellt ein neues Element nach einer angegebenen Position.
emplace_front Fügt ein direkt konstruiertes Element am Anfang der Liste ein.
empty Testet, ob eine Vorwärtsliste leer ist.
end Gibt einen Iterator zurück, der den Speicherort adressiert, der dem letzten Element einer Vorwärtsliste nachfolgt.
erase_after Entfernt Elemente nach einer angegebenen Position aus der Vorwärtsliste.
Vorderseite Gibt einen Verweis auf das erste Element in einer Vorwärtsliste zurück.
get_allocator Gibt eine Kopie des Zuordnungsobjekts zurück, das zum Erstellen der Vorwärtsliste verwendet wird.
insert_after Fügt der Vorwärtsliste nach einer angegebenen Position Elemente hinzu.
max_size Gibt die Maximallänge einer Vorwärtsliste zurück.
merge Entfernt die Elemente aus der Argumentliste, fügt sie in die Zielvorwärtsliste ein und sortiert den neuen, kombinierten Elementsatz in aufsteigender Reihenfolge oder in einer anderen angegebenen Reihenfolge.
pop_front Löscht das Element am Anfang einer Vorwärtsliste.
push_front Fügt am Anfang einer Vorwärtsliste ein Element hinzu.
remove Löscht Elemente in einer Vorwärtsliste, die einem angegebenen Wert entsprechen.
remove_if Löscht Elemente aus einer Vorwärtsliste, für die ein angegebenes Prädikat erfüllt ist.
resize Gibt eine neue Größe für eine Vorwärtsliste an.
umkehren Kehrt die Reihenfolge um, in der die Elemente in einer Vorwärtsliste auftreten.
sortieren Ordnet die Elemente in aufsteigender Reihenfolge oder einer durch ein Prädikat angegebenen Reihenfolge.
splice_after Erneuert Links zwischen Knoten.
swap Tauscht die Elemente zweier Vorwärtslisten aus.
unique Entfernt benachbarte Elemente, die einen angegebenen Test bestehen.

Operatoren

Name Beschreibung
operator= Ersetzt die Elemente der Vorwärtsliste durch eine Kopie einer anderen Vorwärtsliste.

allocator_type

Ein Typ, mit dem die Zuweisungsklasse für ein forward list-Objekt dargestellt wird.

typedef Allocator allocator_type;

Hinweise

allocator_type ist ein Synonym für den Vorlagenparameter „Allocator“.

Zuweisen

Löscht Elemente aus einer Vorwärtsliste und kopiert einen neuen Satz von Elementen an eine Zielvorwärtsliste.

void assign(
    size_type Count,
    const Type& Val);

void assign(
    initializer_list<Type> IList);

template <class InputIterator>
void assign(InputIterator First, InputIterator Last);

Parameter

first
Der Anfang des Ersetzungsbereichs.

last
Das Ende des Ersetzungsbereichs.

count
Die Anzahl zuzuweisender Elemente.

val
Der jedem Element zuzuweisende Wert.

Typ
Der Typ des Werts.

IList
Das zu kopierende initializer_list-Element.

Hinweise

Wenn "forward_list" ein Ganzzahltyp ist, verhält sich die erste Memberfunktion genau wie assign((size_type)First, (Type)Last). Andernfalls ersetzt die Memberfunktion die von *this gesteuerte Sequenz durch die Sequenz [ First, Last), die sich nicht mit der ursprünglichen gesteuerten Sequenz überschneiden darf.

Die zweite Memberfunktion ersetzt die Sequenz, die von *this durch eine Wiederholung von Count-Elementen des Werts Val gesteuert wird.

Die dritte Memberfunktion kopiert die Elemente von "initializer_list" in "forward_list".

before_begin

Gibt einen Iterator zurück, der die Position vor dem ersten Element in einer Vorwärtsliste adressiert.

const_iterator before_begin() const;
iterator before_begin();

Rückgabewert

Gibt einen Forward-Iterator zurück, der unmittelbar vor das erste Element der Sequenz zeigt (bzw. unmittelbar vor das Ende einer leeren Sequenz)

Hinweise

begin

Gibt einen Iterator zurück, der das erste Element in einer Vorwärtsliste adressiert.

const_iterator begin() const;
iterator begin();

Rückgabewert

Ein Forward-Iterator, der auf das erste Element der Sequenz zeigt (bzw. unmittelbar hinter das Ende einer leeren Sequenz).

Hinweise

cbefore_begin

Gibt einen konstanten Iterator zurück, der die Position vor dem ersten Element in einer Vorwärtsliste adressiert.

const_iterator cbefore_begin() const;

Rückgabewert

Gibt einen Forward-Iterator zurück, der unmittelbar vor das erste Element der Sequenz zeigt (bzw. unmittelbar vor das Ende einer leeren Sequenz)

Hinweise

cbegin

Gibt einen const-Iterator zurück, mit dem das erste Element im Bereich behandelt wird.

const_iterator cbegin() const;

Rückgabewert

Ein const-Forward-Access-Iterator, der auf das erste Element des Bereichs zeigt oder die Position direkt hinter dem Ende eines leeren Bereichs (für einen leeren Bereich gilt cbegin() == cend()).

Hinweise

Mit dem Rückgabewert von cbegin, die Elemente im Bereich können nicht geändert werden.

Sie können diese Memberfunktion anstelle der begin()-Memberfunktion verwenden, um sicherzustellen, dass der Rückgabewert const_iterator ist. Normalerweise wird sie mit dem Schlüsselwort für den automatischen Typabzug verwendet, wie im folgenden Beispiel gezeigt. Im folgenden Beispiel ist Container ein beliebiger änderbarer (Nicht-const-)Container, der begin() und cbegin() unterstützt.

auto i1 = Container.begin();
// i1 is Container<T>::iterator
auto i2 = Container.cbegin();
// i2 is Container<T>::const_iterator

cend

Gibt einen const-Iterator zurück, der den Speicherort adressiert, der dem letzten Element eines Bereichs unmittelbar nachfolgt.

const_iterator cend() const;

Rückgabewert

Gibt einen -Forward-Access-Iterator zurück, der auf eine Position unmittelbar nach dem Ende des Bereichs verweist.

Hinweise

cend wird verwendet, um zu testen, ob ein Iterator das Ende seines Bereichs übergeben hat.

Sie können diese Memberfunktion anstelle der end()-Memberfunktion verwenden, um sicherzustellen, dass der Rückgabewert const_iterator ist. Normalerweise wird sie mit dem Schlüsselwort für den automatischen Typabzug verwendet, wie im folgenden Beispiel gezeigt. Im folgenden Beispiel ist Container ein beliebiger änderbarer (Nicht-const-)Container, der end() und cend() unterstützt.

auto i1 = Container.end();
// i1 is Container<T>::iterator
auto i2 = Container.cend();

// i2 is Container<T>::const_iterator

Der zurückgegebene cend Wert sollte nicht abgeleitet werden.

clear

Löscht alle Elemente einer Vorwärtsliste auf.

void clear();

Hinweise

Diese Memberfunktion ruft auf erase_after(before_begin(), end()).

const_iterator

Ein Typ, der einen konstanten Iterator für die Vorwärtsliste bereitstellt.

typedef implementation-defined const_iterator;

Hinweise

const_iterator beschreibt ein Objekt, das als konstanter Forward-Iterator für die gesteuerte Sequenz fungieren kann. Es wird hier als Synonym für einen implementierungsdefinierten Typ beschrieben.

const_pointer

Ein Typ, der einen Zeiger auf ein const-Element in einer Vorwärtsliste bereitstellt.

typedef typename Allocator::const_pointer
    const_pointer;

Hinweise

const_reference

Ein Typ, der einen Konstantenverweis auf einer Vorwärtsliste gespeichertes Element bereitstellt.

typedef typename Allocator::const_reference const_reference;

Hinweise

difference_type

Ein Ganzzahltyp mit Vorzeichen, der dazu verwendet werden kann, die Anzahl von Elementen einer Vorwärtsliste in einen Bereich zwischen Elementen darzustellen, auf die von Iteratoren gezeigt wird.

typedef typename Allocator::difference_type difference_type;

Hinweise

difference_type beschreibt ein Objekt, das die Differenz zwischen den Adressen von zwei beliebigen Elementen in der gesteuerten Sequenz darstellen kann.

emplace_after

Die Verschiebung erstellt ein neues Element nach einer angegebenen Position.

template <class T>
iterator emplace_after(const_iterator Where, Type&& val);

Parameter

Where
Die Position in der forward_list-Klasse, an der das neue Element erstellt wird.

val
Das Konstruktorargument

Rückgabewert

Ein Iterator, der das neu eingefügte Element entwirft

Hinweise

Diese Memberfunktion fügt ein Element mit den Konstruktorargumenten direkt nach dem Element ein, auf das in der kontrollierten Sequenz von Where verwiesen wird. Das Verhalten entspricht andernfalls forward_list::insert_after.

emplace_front

Fügt ein direkt konstruiertes Element am Anfang der Liste ein.

template <class Type>
    void emplace_front(Type&& val);

Parameter

val
Das am Anfang der Vorwärtsliste hinzugefügte Element

Hinweise

Diese Memberfunktion fügt ein Element mit dem Konstruktorargument _ val am Ende der gesteuerten Sequenz ein.

Wenn eine Ausnahme ausgelöst wird, bleibt der Container unverändert, und die Ausnahme wird erneut ausgelöst.

empty

Testet, ob eine Vorwärtsliste leer ist.

bool empty() const;

Rückgabewert

true, wenn die forward_list-Klasse leer ist, andernfalls false.

end

Gibt einen Iterator zurück, der den Speicherort adressiert, der dem letzten Element einer Vorwärtsliste nachfolgt.

const_iterator end() const;
iterator end();

Rückgabewert

Ein Forward-Iterator, der auf eine Position unmittelbar hinter dem Ende der Sequenz verweist.

erase_after

Entfernt Elemente nach einer angegebenen Position aus der Vorwärtsliste.

iterator erase_after(const_iterator Where);
iterator erase_after(const_iterator first, const_iterator last);

Parameter

Where
Die Position in der forward_list-Klasse, an der das Element gelöscht wird

first
Der Anfang des zu löschenden Bereichs

last
Das Ende des zu löschenden Bereichs

Rückgabewert

Ein Iterator, der das erste über die entfernten Elemente hinaus verbliebene Element festlegt, oder forward_list::end, wenn kein solches Element vorhanden ist.

Hinweise

Die erste Memberfunktion entfernt das Element der gesteuerten Sequenz direkt nach Where.

Die zweite Memberfunktion entfernt die Elemente der gesteuerten Sequenz im Bereich ( first, last) (keiner der beiden Endpunkte ist beinhaltet).

Das Löschen von N-Elementen verursacht N-Destruktoraufrufe. Eine Neuzuordnung findet statt, damit Iteratoren und Verweise für die gelöschten Elemente ungültig werden.

Von der Memberfunktionen wird nie eine Ausnahme ausgelöst.

forward_list

Konstruiert ein Objekt vom Typ forward_list.

forward_list();
explicit forward_list(const Allocator& Al);
explicit forward_list(size_type Count);
forward_list(size_type Count, const Type& Val);
forward_list(size_type Count, const Type& Val, const Allocator& Al);
forward_list(const forward_list& Right);
forward_list(const forward_list& Right, const Allocator& Al);
forward_list(forward_list&& Right);
forward_list(forward_list&& Right, const Allocator& Al);
forward_list(initializer_list<Type> IList, const Alloc& Al);
template <class InputIterator>
forward_list(InputIterator First, InputIterator Last);
template <class InputIterator>
forward_list(InputIterator First, InputIterator Last, const Allocator& Al);

Parameter

Al
Die mit diesem Objekt zu verwendende Zuweisungsklasse.

Count
Die Anzahl von Elementen in der erstellten Liste.

Val
Der Wert der Elemente in der erstellten Liste.

Right
Die Liste, deren Kopie die erstellte Liste ist.

First
Die Position des ersten Elements in dem zu kopierenden Elementbereich.

Last
Die Position des ersten Elements nach dem zu kopierenden Elementbereich.

IList
Das zu kopierende initializer_list-Element.

Hinweise

Alle Konstruktoren speichern allocator-Element und initialisieren die gesteuerte Sequenz. The allocator object is the argument Al, if present. Für den Kopierkonstruktor ist right.get_allocator()es . Andernfalls ist das Ergebnis Allocator().

Die ersten beiden Konstruktoren geben eine leere gesteuerte Sequenz an.

Der dritte Konstruktor gibt eine Wiederholung von Count-Elementen des Werts Type()an.

Die vierten und fünften Konstruktoren geben eine Wiederholung von Count-Elementen von Wert Val an.

Der sechste Konstruktor gibt eine Kopie der von Rechts gesteuerten Sequenz an. Wenn InputIterator ein Ganzzahltyp ist, geben die folgenden zwei Konstruktoren eine Wiederholung von (size_type)First-Elementen des Werts (Type)Last an. Andernfalls geben die folgenden zwei Konstruktoren die Sequenz [First, Last) an.

Der neunte und zehnte Konstruktor sind mit dem sechsten identisch, haben aber einen rvalue-Verweis.

Der letzte Konstruktor gibt die ursprüngliche gesteuerte Sequenz mit einem Objekt der Klasse initializer_list<Type> an.

Vorderseite

Gibt einen Verweis auf das erste Element in einer Vorwärtsliste zurück.

reference front();
const_reference front() const;

Rückgabewert

Ein Verweis auf das erste Element der gesteuerten Sequenz, das nicht leer sein darf

get_allocator

Gibt eine Kopie des Zuordnungsobjekts zurück, das zum Erstellen der Vorwärtsliste verwendet wird.

allocator_type get_allocator() const;

Rückgabewert

Das gespeicherte allocator-Objekt

insert_after

Fügt der Vorwärtsliste nach einer angegebenen Position Elemente hinzu.

iterator insert_after(const_iterator Where, const Type& Val);
void insert_after(const_iterator Where, size_type Count, const Type& Val);
void insert_after(const iterator Where, initializer_list<Type> IList);
iterator insert_after(const_iterator Where, Type&& Val);
template <class InputIterator>
    void insert_after(const_iterator Where, InputIterator First, InputIterator Last);

Parameter

Where
Die Position in der Zielvorwärtsliste, an der das erste Element eingefügt wird.

Count
Die Anzahl einzufügender Elemente.

First
Der Anfang des Einfügebereichs.

Last
Das Ende des Einfügebereichs.

Val
Das Element hinzugefügt Vorwärtsliste.

IList
Das einzufügende initializer_list-Element.

Rückgabewert

Ein Iterator, der das neu eingefügte Element festlegt (nur erste und letzte Memberfunktionen).

Hinweise

Jede der Memberfunktionen fügt – direkt nach dem Element, auf das in der gesteuerten Sequenz verwiesen wird – eine Sequenz ein, die von den verbleibenden Operanden angegeben wurde.

Die erste Memberfunktion fügt ein Element mit dem Wert Val ein und gibt einen Iterator zurück, der das neu eingefügte Element angibt.

Die zweite Memberfunktion fügt eine Wiederholung von Count-Elementen von Wert Val ein.

Wenn InputIterator ein Ganzzahltyp ist, verhält sich die dritte Memberfunktion genau wie insert(it, (size_type)First, (Type)Last). Andernfalls wird die Sequenz [First, Last) eingefügt, die die ursprüngliche gesteuerte Sequenz nicht überschneiden darf.

Die vierte Memberfunktion fügt die Sequenz ein, die vom Objekt der Klasse initializer_list<Type> angegeben wird.

Die letzte Memberfunktion ist mit der ersten identisch, hat aber einen rvalue-Verweis.

Das Einfügen von N-Elementen verursacht N-Konstruktoraufrufe. Eine Neuzuordnung erfolgt, es werden aber keine Iteratoren oder Verweise ungültig.

Wird während der Einfügung bei einem oder mehreren Elementen eine Ausnahme ausgelöst wird, wird der Container unverändert belassen, und die Ausnahme wird erneut ausgelöst.

Iterator

Ein Typ, der einen Iterator für die Vorwärtsliste bereitstellt.

typedef implementation-defined iterator;

Hinweise

iterator beschreibt ein Objekt, das als Forward-Iterator für die gesteuerte Sequenz fungieren kann. Es wird hier als Synonym für einen implementierungsdefinierten Typ beschrieben.

max_size

Gibt die Maximallänge einer Vorwärtsliste zurück.

size_type max_size() const;

Rückgabewert

Die Länge der längsten Sequenz, die das Objekt steuern kann

Hinweise

merge

Kombiniert zwei sortierte Sequenzen zu einer einzigen sortierte Sequenz zeitlich linear. Entfernt die Elemente aus der Argumentliste und fügt sie in forward_list ein. Die beiden Listen sollten von dem gleichen Funktionenvergleichsobjekt sortiert werden, bevor merge aufgerufen wird. Die kombinierte Liste wird nach dem Funktionenvergleichsobjekt sortiert.

void merge(forward_list& right);
template <class Predicate>
    void merge(forward_list& right, Predicate comp);

Parameter

right
Die forward_list-Klasse, aus der zusammengeführt wird

comp
Der Funktionenvergleichsobjekt, das zum Sortieren der Elemente verwendet wird

Hinweise

forward_list::merge entfernt die Elemente aus dem forward_list right, und fügt sie in diese forward_listein. Beide Sequenzen müssen nach dem gleichen Prädikat sortiert werden, wie unten beschrieben. Die kombinierte Ereignissequenz wird ebenfalls nach diesem Funktionenvergleichssobjekt sortiert.

Für die Iteratoren Pi und Pj, die Elemente an den Positionen i und j festlegen, erzwingt die erste Memberfunktion die Reihenfolge !(*Pj < *Pi), immer wenn i < j vorliegt. (Die Elemente werden in ascending der reihenfolge sortiert.) Die zweite Memberfunktion legt die Reihenfolge ! comp(*Pj, *Pi) immer i < jdann fest.

In der ursprünglichen gesteuerten Sequenz werden in der resultierenden gesteuerten Sequenz keine Elementpaare rückgängig gemacht. Wenn ein Elementpaar in der resultierenden gesteuerten Sequenz identisch ist ( !(*Pi < *Pj) && !(*Pj < *Pi)), erscheint ein Element aus der ursprünglichen gesteuerten Sequenz vor einem Element aus der von right gesteuerten Sequenz.

Eine Ausnahme tritt nur dann auf, wenn comp eine Ausnahme auslöst. In diesem Fall bleibt die gesteuerten Sequenz in einer nicht vorgegebenen Reihenfolge, und die Ausnahme wird erneut ausgelöst.

operator =

Ersetzt die Elemente der Vorwärtsliste durch eine Kopie einer anderen Vorwärtsliste.

forward_list& operator=(const forward_list& right);
forward_list& operator=(initializer_list<Type> IList);
forward_list& operator=(forward_list&& right);

Parameter

right
forward_list-Klasse, die in die forward_list-Klasse kopiert wird

IList
Ein Initialisierer mit geschweiften Klammern, der sich wie eine Sequenz von Elementen des Typs Type verhält.

Hinweise

Der erste Memberoperator ersetzt die kontrollierte Sequenz durch eine Kopie der sequenz, die von rechts gesteuert wird.

Der zweite Memberoperator ersetzt die gesteuerte Sequenz durch ein Objekt der Klasse initializer_list<Type>.

Die letzte Memberfunktion ist identisch mit der ersten, hat aber einen rvalue-Verweis.

Mauszeiger

Ein Typ, der einen Zeiger auf ein Element in der Vorwärtsliste bereitstellt.

typedef typename Allocator::pointer pointer;

pop_front

Löscht das Element am Anfang einer Vorwärtsliste.

void pop_front();

Hinweise

Das erste Element der forward_list-Klasse darf nicht leer sein.

Die Memberfunktionen löst nie eine Ausnahme aus.

push_front

Fügt am Anfang einer Vorwärtsliste ein Element hinzu.

void push_front(const Type& val);
void push_front(Type&& val);

Parameter

val
Das am Anfang der Vorwärtsliste hinzugefügte Element

Hinweise

Wenn eine Ausnahme ausgelöst wird, bleibt der Container unverändert, und die Ausnahme wird erneut ausgelöst.

Referenz

Ein Typ, der einen Verweis auf ein in der Vorwärtsliste gespeichertes Element bereitstellt.

typedef typename Allocator::reference reference;

remove

Löscht Elemente in einer Vorwärtsliste, die einem angegebenen Wert entsprechen.

void remove(const Type& val);

Parameter

val
Der Wert, der, sofern er von einem Element gehalten wird, das Entfernen dieses Elements aus der Liste verursacht.

Hinweise

Die Memberfunktion entfernt alle Elemente aus der kontrollierten Sequenz, die vom Iterator P bestimmt wurden, für den *P == val

Die Memberfunktionen löst nie eine Ausnahme aus.

remove_if

Löscht Elemente aus einer Vorwärtsliste, für die ein angegebenes Prädikat erfüllt ist.

template <class Predicate>
    void remove_if(Predicate pred);

Parameter

Pred
Das unäre Prädikat, das bei Erfüllung durch ein Element das Löschen dieses Elements in der Liste zur Folge hat.

Hinweise

Die Memberfunktion entfernt alle Elemente aus der kontrollierten Sequenz, die vom Iterator P bestimmt wurden, für den pred(*P) TRUE ist.

Eine Ausnahme tritt nur auf, wenn vorab eine Ausnahme ausgelöst wird. In diesem Fall bleibt die gesteuerten Sequenz in einem nicht vorgegebenen Zustand, und die Ausnahme wird erneut ausgelöst.

resize

Gibt eine neue Größe für eine Vorwärtsliste an.

void resize(size_type _Newsize);
void resize(size_type _Newsize, const Type& val);

Parameter

_Newsize
Die Anzahl der Elemente im Vorwärtsliste, deren Größe angepasst wurde

val
Der für die Auffüllung zu nutzende Wert

Hinweise

Die Memberfunktionen stellen sicher, dass die Anzahl der Elemente in der Liste daher _Newsize ist. Wenn die kontrollierte Sequenz länger sein muss, fügt die erste Memberfunktion Elemente mit Wert Type()an, während die zweite Memberfunktion Elemente mit Wertwert anfüge. Damit die gesteuerte Sequenz kürzer wird, rufen beide Memberfunktionen erase_after(begin() + _Newsize - 1, end()) auf.

reverse

Kehrt die Reihenfolge um, in der die Elemente in einer Vorwärtsliste auftreten.

void reverse();

size_type

Ein Typ, der den Abstand ohne Vorzeichen zwischen zwei Elementen darstellt.

typedef typename Allocator::size_type size_type;

Hinweise

Der unsignierte Ganzzahltyp beschreibt ein Objekt, das die Länge jeder kontrollierten Sequenz darstellen kann.

Sortieren

Ordnet die Elemente in aufsteigender Reihenfolge oder einer durch ein Prädikat angegebenen Reihenfolge.

void sort();
template <class Predicate>
void sort(Predicate pred);

Parameter

Pred
Das Sortierungsprädikat

Hinweise

Beide Memberfunktionen sortieren die Elemente in der gesteuerten Sequenz mithilfe eines Prädikats, wie unten beschrieben.

Für die Iteratoren Pi und Pj, die Elemente an den Positionen i und j festlegen, erzwingt die erste Memberfunktion die Reihenfolge !(*Pj < *Pi), immer wenn i < j vorliegt. (Die Elemente werden in ascending der reihenfolge sortiert.) Die Elementvorlagenfunktion legt die Reihenfolge ! pred(*Pj, *Pi) immer i < jdann fest. In der ursprünglichen gesteuerten Sequenz werden in der resultierenden gesteuerten Sequenz keine sortierten Elementpaare rückgängig gemacht. (Die Sortierung ist stabil.)

Eine Ausnahme tritt nur auf, wenn vorab eine Ausnahme ausgelöst wird. In diesem Fall bleibt die gesteuerten Sequenz in einer nicht vorgegebenen Reihenfolge, und die Ausnahme wird erneut ausgelöst.

splice_after

Entfernt Elemente aus einer Quell-forward_list und fügt sie in eine Ziel-forward_list ein.

// insert the entire source forward_list
void splice_after(const_iterator Where, forward_list& Source);
void splice_after(const_iterator Where, forward_list&& Source);

// insert one element of the source forward_list
void splice_after(const_iterator Where, forward_list& Source, const_iterator Iter);
void splice_after(const_iterator Where, forward_list&& Source, const_iterator Iter);

// insert a range of elements from the source forward_list
void splice_after(
    const_iterator Where,
    forward_list& Source,
    const_iterator First,
    const_iterator Last);

void splice_after(
    const_iterator Where,
    forward_list&& Source,
    const_iterator First,
    const_iterator Last);

Parameter

Where
Die Position in der Ziel-forward_list, hinter der die Elemente eingefügt werden sollen.

Quelle
Die Quell-forward_list, die in die Ziel-forward_list eingefügt werden soll.

Iter
Das Element, das aus der Quell-forward_list eingefügt werden soll.

First
Das erste Element im Bereich, das aus der Quell-forward_list eingefügt werden soll.

Last
Die erste Position hinter dem Bereich, der aus der Quell-forward_list eingefügt werden soll.

Hinweise

Das erste Elementfunktionspaar fügt die von Source gesteuerte Sequenz direkt nach dem Element in der kontrollierten Sequenz ein, auf die von Where verwiesen wird. Außerdem werden alle Elemente aus "Source" entfernt. ( &Source darf nicht gleich this sein.)

Das zweite Elementpaar von Memberfunktionen entfernt das Element direkt nach Iter in der von Source gesteuerten Sequenz und fügt es direkt nach dem Element in der kontrollierten Sequenz ein, auf die von Where verwiesen wird. (Wenn Where == Iter || Where == ++Iter ist, findet keine Änderung statt.)

Das dritte Elementfunktionspaar (Bereichsspliz) fügt das untergeordnete Teilrange (First, Last) ein, das von der von Source gesteuerten Sequenz direkt nach dem Element in der kontrollierten Sequenz angegeben wird, auf die von Where verwiesen wird. Außerdem wird der ursprüngliche Unterbereich aus der von Source gesteuerten Sequenz entfernt. (Wenn &Source == this, darf der Bereich (First, Last) nicht das Element enthalten, auf das durch Where verwiesen wird.)

Wenn der Bereichs-Splice N-Elemente und &Source != this einfügt, wird ein Objekt der Klasse iterator um das N-fache erhöht.

Keine Iteratoren, Zeiger oder Verweise, die zusammengeführte Elemente bezeichnen, werden ungültig.

Beispiel

// forward_list_splice_after.cpp
// compile with: /EHsc /W4
#include <forward_list>
#include <iostream>

using namespace std;

template <typename S> void print(const S& s) {
    for (const auto& p : s) {
        cout << "(" << p << ") ";
    }

    cout << endl;
}

int main()
{
    forward_list<int> c1{ 10, 11 };
    forward_list<int> c2{ 20, 21, 22 };
    forward_list<int> c3{ 30, 31 };
    forward_list<int> c4{ 40, 41, 42, 43 };

    forward_list<int>::iterator where_iter;
    forward_list<int>::iterator first_iter;
    forward_list<int>::iterator last_iter;

    cout << "Beginning state of lists:" << endl;
    cout << "c1 = ";
    print(c1);
    cout << "c2 = ";
    print(c2);
    cout << "c3 = ";
    print(c3);
    cout << "c4 = ";
    print(c4);

    where_iter = c2.begin();
    ++where_iter; // start at second element
    c2.splice_after(where_iter, c1);
    cout << "After splicing c1 into c2:" << endl;
    cout << "c1 = ";
    print(c1);
    cout << "c2 = ";
    print(c2);

    first_iter = c3.begin();
    c2.splice_after(where_iter, c3, first_iter);
    cout << "After splicing the first element of c3 into c2:" << endl;
    cout << "c3 = ";
    print(c3);
    cout << "c2 = ";
    print(c2);

    first_iter = c4.begin();
    last_iter = c4.end();
    // set up to get the middle elements
    ++first_iter;
    c2.splice_after(where_iter, c4, first_iter, last_iter);
    cout << "After splicing a range of c4 into c2:" << endl;
    cout << "c4 = ";
    print(c4);
    cout << "c2 = ";
    print(c2);
}
Beginning state of lists:c1 = (10) (11)c2 = (20) (21) (22)c3 = (30) (31)c4 = (40) (41) (42) (43)After splicing c1 into c2:c1 =c2 = (20) (21) (10) (11) (22)After splicing the first element of c3 into c2:c3 = (30)c2 = (20) (21) (31) (10) (11) (22)After splicing a range of c4 into c2:c4 = (40) (41)c2 = (20) (21) (42) (43) (31) (10) (11) (22)

swap

Tauscht die Elemente zweier Vorwärtslisten aus.

void swap(forward_list& right);

Parameter

right
Die forward_list-Klasse, die auszutauschende Elemente bereitstellt

Hinweise

Die Memberfunktion wechselt die gesteuerten Sequenzen zwischen *this und rechts. Wenn get_allocator() == right.get_allocator(), führt sie dies in einer konstanten Zeit aus, löst keine Ausnahmen aus und macht keine Verweise, Zeiger oder Iteratoren ungültig, die Elemente in den beiden gesteuerten Sequenzen bestimmen. Andernfalls werden Elementzuweisungen und Konstruktoraufrufe proportional zur Anzahl der Elemente in den beiden gesteuerten Sequenzen ausgeführt.

unique

Entfernt alle bis auf das erste Element aus jeder aufeinander folgenden Gruppe gleicher Elemente

void unique();
template <class BinaryPredicate>
void unique(BinaryPredicate comp);

Parameter

comp
Das binäre Prädikat, das zum Vergleichen von aufeinander folgenden Elementen verwendet wird.

Hinweise

Behält das erste von jedem eindeutigen Element und entfernt die übrigen Die Elemente müssen sortiert werden, sodass Elemente mit gleichem Wert in der Liste nebeneinander angezeigt werden.

Die erste Memberfunktion entfernt jedes Element aus der gesteuerten Sequenz, das identisch mit dem vorherigen Element ist. Für die Iteratoren Pi und Pj, die Elemente an den Positionen i und j bestimmen, entfernt die zweite Memberfunktion jedes Element, für das i + 1 == j && comp(*Pi, *Pj) gilt.

Bei einer kontrollierten Längenfolge N (> 0) wird das Prädikat comp(*Pi, *Pj) mal ausgewertet N - 1 .

Eine Ausnahme tritt nur dann auf, wenn comp eine Ausnahme auslöst. In diesem Fall bleibt die gesteuerten Sequenz in einem nicht vorgegebenen Zustand, und die Ausnahme wird erneut ausgelöst.

value_type

Ein Typ, der den Typ des in einer Vorwärtsliste gespeicherten Elements darstellt.

typedef typename Allocator::value_type value_type;

Hinweise

Der Type stellt ein Synonym für den Vorlagenparameter Typedar.