Partager via


list::merge (STL/CLR)

Fusionne deux séquences contrôlées ordonnées.

    void merge(list<Value>% right);
    template<typename Pred2>
        void merge(list<Value>% right, Pred2 pred);

Paramètres

  • pred
    Comparateur pour les paires d'éléments.

  • right
    Conteneur à fusionner dans.

Notes

La première fonction membre supprime tous les éléments de la séquence contrôlée par right et les insère dans la séquence contrôlée.Les deux séquences doivent être précédemment classées par operator< -- les éléments ne doivent pas diminuer en valeur et à mesure que vous avancez dans l'un ou l'autre de séquence.La séquence résultante est également classée par operator<.Vous utilisez cette fonction membre pour fusionner deux séquences cette augmentation de la valeur dans une séquence qui également de augmente de la valeur.

La deuxième fonction membre se comporte de la même manière que le premier, mais que les séquences sont classées par pred -- pred(X, Y) doit être valeur false pour tout élément X qui suit l'élément Y dans la séquence.Vous l'utilisez pour fusionner deux séquences classées par une fonction de prédicat ou les déléguer que vous spécifiez.

Les deux fonctions exécutent une fusion stable -- aucune paire d'éléments dans l'une ou l'autre des séquences contrôlées d'origine n'est inversé dans la séquence contrôlée résultant.En outre, si une paire d'éléments X et Y dans la séquence contrôlée obtenue possède le classement équivalent -- !(X < Y) && !(X < Y) -- un élément de la séquence contrôlée d'origine s'affiche avant un élément de la séquence contrôlée par right.

Exemple

// cliext_list_merge.cpp 
// compile with: /clr 
#include <cliext/list> 
 
typedef cliext::list<wchar_t> Mylist; 
int main() 
    { 
    cliext::list<wchar_t> c1; 
    c1.push_back(L'a'); 
    c1.push_back(L'c'); 
    c1.push_back(L'e'); 
 
// display initial contents " a c e" 
    for each (wchar_t elem in c1) 
        System::Console::Write(" {0}", elem); 
    System::Console::WriteLine(); 
 
    cliext::list<wchar_t> c2; 
    c2.push_back(L'b'); 
    c2.push_back(L'd'); 
    c2.push_back(L'f'); 
 
// display initial contents " b d f" 
    for each (wchar_t elem in c2) 
        System::Console::Write(" {0}", elem); 
    System::Console::WriteLine(); 
 
// merge and display 
    cliext::list<wchar_t> c3(c1); 
    c3.merge(c2); 
    for each (wchar_t elem in c3) 
        System::Console::Write(" {0}", elem); 
    System::Console::WriteLine(); 
    System::Console::WriteLine("c2.size() = {0}", c2.size()); 
 
// sort descending, merge descending, and redisplay 
    c1.sort(cliext::greater<wchar_t>()); 
    for each (wchar_t elem in c1) 
        System::Console::Write(" {0}", elem); 
    System::Console::WriteLine(); 
 
    c3.sort(cliext::greater<wchar_t>()); 
    for each (wchar_t elem in c3) 
        System::Console::Write(" {0}", elem); 
    System::Console::WriteLine(); 
 
    c3.merge(c1, cliext::greater<wchar_t>()); 
    for each (wchar_t elem in c3) 
        System::Console::Write(" {0}", elem); 
    System::Console::WriteLine(); 
    System::Console::WriteLine("c1.size() = {0}", c1.size()); 
    return (0); 
    } 
 
  

Configuration requise

en-tête :<cliext/liste>

Cliext del'espace de noms :

Voir aussi

Référence

list (STL/CLR)

list::sort (STL/CLR)

list::splice (STL/CLR)