list::splice (STL/CLR)
Collegamenti di Restitch tra i nodi.
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);
Parametri
innanzitutto
A partire dall'intervallo da impiombare.last
estremità di intervallo da impiombare.right
contenitore da impiombare da.where
La posizione del contenitore impiombare prima.
Note
La prima funzione membro inserire la sequenza controllata da right prima dell'elemento nella sequenza selezionata indicata da where.Elimina inoltre tutti gli elementi da right.(%right non deve essere uguale this). È possibile utilizzarlo per impiombare qualsiasi un elenco in un altro.
La seconda funzione membro rimuove l'elemento fa riferimento da first nella sequenza controllata da right che viene inserito prima dell'elemento nella sequenza selezionata indicata da where.(Se where==first||where== ++first, nessuna modifica avviene.) Utilizzarla per impiombare un singolo elemento di un elenco in un altro.
La terza funzione membro inserisce il sottosistema definito da [first,last) dalla sequenza controllata da right prima dell'elemento nella sequenza selezionata indicata da where.Rimuove anche il sottosistema originale dalla sequenza controllata da right.(Se right==this, l'intervallo [first,last) non deve includere l'elemento fa riferimento da where). È possibile utilizzarlo per impiombare una sottosequenza di zero o più elementi da un elenco in un altro.
Esempio
// 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);
}
Requisiti
intestazione: <cliext/elenco>
Cliext diSpazio dei nomi: