list::splice (STL/CLR)
Links de Restitch entre 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
primeiro
Início do intervalo a emendar.last
O fim do intervalo a emendar.direita
Contêiner a emendar do.onde
Onde no contêiner emendar antes.
Comentários
A primeira função de membro inseriu a sequência controlada por right antes do elemento na sequência controlada apontado por where. Também remove todos os elementos de right. (%right não deve ser igual a this.) Use-a para emendar qualquer uma lista em outra.
A segunda função de membro removeu o elemento apontado por first na sequência controlada por right e o insere antes do elemento na sequência controlada apontado por where. (Se where == first || where == ++first, nenhuma alteração ocorre.) Você usará para emendar um único elemento de uma lista em outra.
A terceira função de membro inseriu o subintervalo designado por [first, last) de sequência controlada por right antes do elemento na sequência controlada apontado por where. Remove o subintervalo original da sequência controlada por right. (Se right == this, o intervalo [first, last) não deve incluir o elemento apontado por where.) Você usará para emendar uma subsequência de zero ou mais elementos de uma lista em 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
cliext </lista deCabeçalho: >
cliext deNamespace: