list::splice (STL/CLR)
Ссылки Restitch между узлами.
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);
Параметры
first
Начало диапазона для объединения.last
Элемент диапазона для объединения.правый
Контейнер для объединения., где
, Где в контейнере восстановиться ранее.
Заметки
Первый функцию-член вставляет последовательность управляемой right перед элементом в управляемой последовательности, на которую указывает where.Он также удаляет все элементы из right.(%right не должно равняться this). Используется для подключения всего из одного списка в другой.
Второй функцию-член удаляет элемент, на first в управляемой последовательности right и вставляет его перед элементом в управляемой последовательности, положение where.(Если where==first||where== ++first не происходит изменение). Используется для объединения один элемент одного списка в другой.
Третий функцию-член вставляет поддиапазон выделенный [first,last) из управляемой последовательности right перед элементом в управляемой последовательности, на которую указывает where.Он также удаляет исходный поддиапазон из управляемой последовательности right.(Если right==this, диапазон [first,last) не должно включать элемент, на where). Используется для объединения самой длинной общей подпоследовательности ноль или более элементов из одного списка в другой.
Пример
// 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);
}
Требования
заголовок: <список cliext/>
Cliext пространство имен: