multiset::erase (STL/CLR)
指定した位置にある要素を削除します。
iterator erase(iterator where);
iterator erase(iterator first, iterator last);
size_type erase(key_type key)
パラメーター
まず
消去する範囲の先頭。key
消去するキー値。last
消去する範囲の最後。where
消去する要素。
解説
一つ目のメンバー関数は、そのような要素が存在しない場合 whereが指す被制御シーケンスの要素を削除し、削除した要素を超えていない最初の要素を指定するか、 multiset::end (STL/CLR)() 反復子を返します。一つの要素を削除するときに使用します。
2 番目のメンバー関数は、そのような要素が存在しない場合 [範囲first,last)の被制御シーケンスの要素を削除し、削除された要素を超えていない最初の要素を指定するか、 end() 反復子を返します。ゼロ使用して以上の連続する要素を削除するためにも。
3 番目のメンバー関数は、キーに keyに同じ大小関係がある削除し、削除した要素の数の数を返します。被制御シーケンスの要素が。指定したキーに一致するすべての要素を削除し、カウントに使用されます。
各要素の削除は、被制御シーケンスの要素の数の対数に比例した時間がかかります。
使用例
// cliext_multiset_erase.cpp
// compile with: /clr
#include <cliext/set>
typedef cliext::multiset<wchar_t> Mymultiset;
int main()
{
Mymultiset c1;
c1.insert(L'a');
c1.insert(L'b');
c1.insert(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
// erase an element and reinspect
System::Console::WriteLine("erase(begin()) = {0}",
*c1.erase(c1.begin()));
// add elements and display " b c d e"
c1.insert(L'd');
c1.insert(L'e');
for each (wchar_t elem in c1)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
// erase all but end
Mymultiset::iterator it = c1.end();
System::Console::WriteLine("erase(begin(), end()-1) = {0}",
*c1.erase(c1.begin(), --it));
System::Console::WriteLine("size() = {0}", c1.size());
return (0);
}
必要条件
ヘッダー: <cliext と設定>
名前空間: の cliext