Partager via


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

Voir aussi

Référence

forward_list, classe