Поделиться через


list::merge (STL/CLR)

Объединяет две упорядоченные управляемые последовательности.

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

Параметры

  • pred
    Компаратор для пар элементов.

  • правый
    Контейнер для слияния.

Заметки

Первый функцию-член удаляет все элементы из последовательности управляемой right и вставляет их в управляемой последовательности.Обе последовательности должны быть упорядочены operator< ранее -- элементы не должны уменьшить в значении по мере разработки через любая последовательность.Результирующая последовательность также упорядочена operator<.Используйте этот функции-члена, чтобы объединить последовательности 2 то увеличение значения в последовательность, которая также увеличивается в значении.

Второй функцию-член работает так же, как и во-первых, за исключением того, что последовательности упорядочиваются pred -- pred(X, Y) должен иметь значение false для любого элемента X, за элементом Y в последовательности.Используется, чтобы объединить последовательности 2 упорядоченной функции предиката или делегировать, что указан.

Обе функции выполняют стабильное слияние -- никакая пара элементов также исходный контролируемых последовательностей не отменена в итоговом управляемой последовательности.Кроме того, если пара элементов X и Y в итоговом управляемой последовательности имеет эквивалентный упорядочение -- !(X < Y) && !(X < Y) -- элемент управляемой последовательности изначально отображается перед элементом в управляемой последовательности right.

Пример

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

Требования

заголовок: <список cliext/>

Cliext пространство имен:

См. также

Ссылки

list (STL/CLR)

list::sort (STL/CLR)

list::splice (STL/CLR)