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 пространство имен: