list::merge (STL/CLR)
Łączy dwa uporządkowane kontrolowanych sekwencji.
void merge(list<Value>% right);
template<typename Pred2>
void merge(list<Value>% right, Pred2 pred);
Parametry
pred
Moduł porównujący dla elementu par.prawo
Kontener do scalania w.
Uwagi
Pierwsza funkcja Członkowskie usuwa wszystkie elementy z sekwencji, kontrolowana przez right i wstawić je w kontrolowanej sekwencji.Zarówno sekwencji musi uprzednio uporządkowane według operator< --elementy nie musi spadek wartości jak postępu poprzez albo sekwencji.Sekwencja wynikowy jest również uporządkowane według operator<.Ta funkcja Członkowskie umożliwia scalania dwóch sekwencje wzrost wartości w sekwencji, zwiększającą się również w wartości.
Działa drugiej funkcji składowej tak samo jak pierwszy, chyba że sekwencje są uporządkowane według pred -- pred(X, Y) musi być wartość false dla dowolnego elementu X wynika, że element Y w sekwencji.Użyj go do scalania dwóch sekwencji uporządkowane według funkcji predykatu lub pełnomocnika, który określisz.
Zarówno funkcji seryjnej stabilne--nie para elementów albo oryginalnego sekwencji kontrolowanych jest odwrócony w wynikowym sekwencji kontrolowanych.Także jeśli para elementów X i Y w wynikowym sekwencji kontrolowanych ma równoważne zamawiania-- !(X < Y) && !(X < Y) --element z oryginalnej sekwencji kontrolowanych pojawia się przed elementem z sekwencji, kontrolowana przez right.
Przykład
// 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);
}
Wymagania
Nagłówek: < w cliext na liście >
Obszar nazw: cliext