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);
パラメーター
まず
接続する範囲の開始。last
接続する範囲の最後。[right]
から接続するコンテナー。where
コンテナーに接続するには。
解説
一つ目のメンバー関数は whereが指す被制御シーケンス内の要素の前に right によって制御されるシーケンス挿入します。また、 rightからすべての要素を削除します。(%right は thisと同じにしてください)。別の型に 1 個のリストをすべて接続するときに使用します。
2 番目のメンバー関数は right によって制御されるシーケンスの first によって指される要素を削除し、要素の前に whereが指す被制御シーケンスに挿入します。( where==first||where== ++firstが、変更は発生しません)。別の 1 種類の一覧の一つの要素を接続するときに使用します。
3 番目のメンバー関数は whereが指す被制御シーケンス内の要素の前に right によって制御されるシーケンスからの [first,last) で指定された部分範囲を挿入します。また、 rightによって制御されるシーケンスから元の部分範囲を削除します。( right==thisが、範囲 [first,last)whereによって指される要素がない場合は)。別のへの 1 回の一覧から始まる使用します。または、より多くの要素のサブシーケンスを接続するためにも。
使用例
// 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