forward_list::merge
Associe deux séquences triées en une seule séquence ordonnée avec un temps de calcul linéaire. Supprime les éléments de la liste d'arguments, et les insère dans cette forward_list. Les deux listes doivent être triées par la même fonction de comparaison avant l'appel à merge. La liste combinée sera triée par cette fonction de comparaison.
void merge(forward_list& _Right);
template<class Predicate>
void merge(forward_list& _Right, Predicate _Comp);
Paramètres
Paramètre |
Description |
---|---|
_Right |
La forward_list depuis laquelle fusionner. |
_Comp |
La fonction de comparaison utilisé pour trier les éléments. |
Notes
forward_list::merge supprime les éléments de la forward_list _Right, et les insère dans cet forward_list. Les deux séquences doivent être classées par le même attribut, décrit ci-dessous. La séquence combinée est également ordonnée par cette fonction de comparaison.
Pour les itérateurs Pi et Pj désignant des éléments aux positions i et j, la première fonction membre impose l'ordre !(*Pj < *Pi) chaque fois que i < j. (Les éléments sont triés dans l'ordre ascending .) La deuxième fonction membre impose l'ordre !_Comp(*Pj, *Pi) chaque fois qu' i < j.
Aucune paire d'éléments dans la séquence contrôlée originale n'est inversée dans la séquence contrôlée obtenue. Si une combinaison d'éléments dans la séquence obtenue contrôlée est égale (!(*Pi < *Pj) && !(*Pj < *Pi)), un élément de la séquence contrôlée originale apparaît avant un élément de la séquence contrôlée par _Right.
Une erreur se produit uniquement si _Comp lève une exception. Dans ce cas, la séquence contrôlée reste dans un ordre non spécifié et l'exception est levée à nouveau.
Configuration requise
En-tête : <forward_list>
Espace de noms : std