Freigeben über


forward_list::merge

Fasst zwei Sortierreihenfolgen in eine einzelne Sortierreihenfolge zeitlich linear. Entfernt die Elemente aus der Argumentliste und fügt sie in dieses forward_list ein. Die beiden Listen müssen in das gleiche Compare-Funktions-Objekt vor dem Aufruf von merge sortiert werden. Die kombinierte Liste wird durch dieses Compare-Funktions-Objekt sortiert.

void merge(forward_list& _Right);
template<class Predicate>
    void merge(forward_list& _Right, Predicate _Comp);

Parameter

Parameter

Beschreibung

_Right

Die Vorwärtsliste, um von zusammenzuführen.

_Comp

Das Compare-Funktions-Objekt, das verwendet wird, um Elemente zu sortieren.

Hinweise

forward_list::merge entfernt die Elemente von forward_list_Right, und fügt sie in dieses forward_list ein. Beide Sequenzen müssen über dasselbe Prädikat sortiert werden, beschrieben. Die kombinierte Sequenz wird auch von diesem Compare-Funktions-Objekt sortiert.

Für die Iteratoren Pi und Pj, die Elemente in Positionen i und j festlegen, wird eingeschränkt die erste Memberfunktion die Reihenfolge !(*Pj < *Pi) wenn i < j auf. (Die Elemente werden in ascending Reihenfolge sortiert.) Die zweite Memberfunktion erzwingt die Reihenfolge !_Comp(*Pj, *Pi) wenn i < j auf.

Keine Paare von Elementen in der ursprünglichen Sequenz gesteuerten werden in die resultierende gesteuerte Sequenz umgekehrt. Wenn ein Paar von Elementen in der resultierenden Sequenz gesteuerten gleich (!(*Pi < *Pj) && !(*Pj < *Pi)) verglichen wird, wird ein Element von der ursprünglichen Sequenz gesteuerten vor einem Element der Sequenz, die durch _Right gesteuert wird.

Eine Ausnahme tritt nur auf, wenn _Comp eine Ausnahme auslöst. In diesem Fall wird die gesteuerte Sequenz nicht in der angegebenen Reihenfolge beibehalten und die Ausnahme wird erneut ausgelöst.

Anforderungen

Header: <forward_list>

Namespace: std

Siehe auch

Referenz

forward_list-Klasse