list::splice (STL/CLR)
Liens de Restitch entre les nœuds.
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);
Paramètres
tout d'abord
Début de la plage à d'ajouter.last
Fin de la plage à d'ajouter.right
Conteneur à d'ajouter de.where
Où dans le conteneur d'ajouter avant.
Notes
La première fonction membre insère la séquence contrôlée par right avant que l'élément de la séquence contrôlée a désigné par where.Il supprime également tous les éléments d' right.(%right ne doit pas être égal this.) Vous l'utilisez pour d'ajouter toute une liste dans une autre.
La deuxième fonction membre supprime l'élément sur lequel pointe first dans la séquence contrôlée par right et l'insère avant que l'élément de la séquence contrôlée a désigné par where.(Si where==first||where== ++first, aucune modification se produit.) Vous l'utilisez pour d'ajouter un élément dans une liste dans une autre.
La troisième fonction membre insère la sous-plage indiqué par [first,last) de la séquence contrôlée par right avant que l'élément de la séquence contrôlée a désigné par where.Il supprime également la sous-plage d'origine de la séquence contrôlée par right.(Si right==this, la plage [first,last) ne doit pas inclure l'élément sur lequel pointe where.) Vous l'utilisez pour d'ajouter un sous-séquence de zéro ou plusieurs éléments d'une liste dans une autre.
Exemple
// 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);
}
Configuration requise
en-tête :<cliext/liste>
Cliext del'espace de noms :