List::splice (STL/CLR)
Restitch links entre os nós.
void splice(iterator where, list<Value>% right);
void splice(iterator where, list<Value>% right,
iterator first);
void splice(iterator where, list<Value>% right,
iterator first, iterator last);
Parâmetros
primeira
Início do intervalo a fusão.última
Final do intervalo a fusão.direito
Recipiente a fusão de.onde
Onde no recipiente a fusão antes.
Comentários
A primeira função de membro insere a seqüência controlada por right antes do elemento na seqüência controlada apontado pelo where.Ela também remove todos os elementos de right.(%right must not equal this.) Você pode usá-lo a fusão todos de uma lista para outra.
A segunda função de membro remove o elemento apontado por first na seqüência controlada por right e o insere antes do elemento na seqüência controlada apontado pelo where.(If where == first || where == ++first, no change occurs.) Use-a fusão de um único elemento de uma lista para outra.
A função de membro terceira insere o subintervalo designado por [first, last) da seqüência controlada por right antes do elemento na seqüência controlada apontado pelo where.Ela também remove subintervalo original da seqüência controlada por right.(If right == this, the range [first, last) must not include the element pointed to by where.) Você pode usá-lo a fusão um subsequence de zero ou mais elementos de uma lista para outra.
Exemplo
// cliext_list_splice.cpp
// compile with: /clr
#include <cliext/list>
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
// splice to a new list
cliext::list<wchar_t> c2;
c2.splice(c2.begin(), c1);
System::Console::WriteLine("c1.size() = {0}", c1.size());
for each (wchar_t elem in c2)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
// return one element
c1.splice(c1.end(), c2, c2.begin());
for each (wchar_t elem in c1)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
for each (wchar_t elem in c2)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
// return remaining elements
c1.splice(c1.begin(), c2, c2.begin(), c2.end());
for each (wchar_t elem in c1)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
System::Console::WriteLine("c2.size() = {0}", c2.size());
return (0);
}
Requisitos
Cabeçalho: < cliext/lista >
Namespace: cliext