Freigeben über


list::merge (STL/CLR)

Führt zwei geordnete kontrollierte Sequenzen zusammen.

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

Parameter

  • pred
    Element für den Vergleich.

  • right
    Herein Container zusammengeführt werden soll.

Hinweise

Die erste Memberfunktion entfernt alle Elemente aus der Sequenz, die durch right gesteuert wird, und fügt sie in der kontrollierten Sequenz ein.Die beiden Sequenzen müssen durch operator< geordnet werden vorher -- Die Elemente dürfen nicht Wertminderung, während Sie jede Sequenz von weiterkommen.Die resultierende Sequenz kann auch über operator< geordnet.Sie verwenden diese Memberfunktion, um zwei Sequenzen diese Erhöhung des Werts in eine Sequenz zusammenführen, die sich auch der Wert erhöht.

Die zweite Memberfunktion verhält sich genauso wie das erste, mit der Ausnahme, dass die Sequenzen über pred geordnet -- pred(X, Y) muss für jedes Element X falsch sein, das Element Y in der Sequenz entspricht.Sie verwenden sie, um zwei Sequenzen zusammengeführt, die von einer Prädikatfunktion oder zu delegieren geordnet sind.

Beide Funktionen führen stabilen Zusammenführung aus -- Kein Paar von Elementen in keiner der ursprünglichen gesteuerten Sequenzen in die resultierende gesteuerte Reihenfolge umgekehrt.Auch wenn ein Paar von Elementen X und Y in der resultierenden Sequenz gesteuerten entsprechenden Reihenfolge aufweist -- !(X < Y) && !(X < Y) -- ein Element aus der ursprünglichen kontrollierten Sequenz wird, bevor ein Element aus der Sequenz, die durch right gesteuert wird.

Beispiel

// 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); 
    } 
 
  

Anforderungen

Header: <cliext/Liste>

Namespace: cliext

Siehe auch

Referenz

Liste (STL/CLR)

list::sort (STL/CLR)

list::splice (STL/CLR)