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