hash_map::insert (STL/CLR)
要素を追加します。
cliext::pair<iterator, bool> insert(value_type val);
iterator insert(iterator where, value_type val);
template<typename InIter>
void insert(InIter first, InIter last);
void insert(System::Collections::Generic::IEnumerable<value_type>^ right);
パラメーター
まず
挿入する範囲の先頭。last
挿入する範囲の最後。[right]
挿入する列挙。val
挿入するキー値。where
コンテナー内の挿入位置 (ヒントのみ)。
解説
メンバー関数は、残りのオペランドで指定されたシーケンスを挿入します。
一つ目のメンバー関数は値 valの要素を挿入するようにコミットし X値のペアを返します。X.second が true の場合、 X.first は、新しく挿入された要素を指定します; それ以外の場合は X.first は同等の要素を指定し、それを既に存在します。注文する新しい要素は挿入されません。一つの要素を挿入する場合に使用します。
2 番目のメンバー関数はツール ヒントとして where を使用して値 valの要素、 (パフォーマンスを向上させるため)、および戻りを新しく挿入される要素を指定する反復子挿入します。がわかっている要素の横にある可能性がある一つの要素を挿入する場合に使用します。
3 番目のメンバー関数は、シーケンス [first,last)を挿入します。別のシーケンスからコピーから使用します。または、より多くの要素を挿入するためにも。
4 番目のメンバー関数は rightで指定されたシーケンスを挿入します。列挙子で説明するシーケンスを挿入する場合に使用します。
各要素の挿入は、被制御シーケンスの要素の数の対数に比例した時間がかかります。ただし、挿入位置はカーソルに隣接する要素を指定するツール ヒントを持つ償却定数時に発生する可能性があります。
使用例
// cliext_hash_map_insert.cpp
// compile with: /clr
#include <cliext/hash_map>
typedef cliext::hash_map<wchar_t, int> Myhash_map;
typedef Myhash_map::pair_iter_bool Pairib;
int main()
{
Myhash_map c1;
c1.insert(Myhash_map::make_value(L'a', 1));
c1.insert(Myhash_map::make_value(L'b', 2));
c1.insert(Myhash_map::make_value(L'c', 3));
// display contents " [a 1] [b 2] [c 3]"
for each (Myhash_map::value_type elem in c1)
System::Console::Write(" [{0} {1}]", elem->first, elem->second);
System::Console::WriteLine();
// insert a single value, unique and duplicate
Pairib pair1 =
c1.insert(Myhash_map::make_value(L'x', 24));
System::Console::WriteLine("insert([L'x' 24]) = [{0} {1}] {2}",
pair1.first->first, pair1.first->second, pair1.second);
pair1 = c1.insert(Myhash_map::make_value(L'b', 2));
System::Console::WriteLine("insert([L'b' 2]) = [{0} {1}] {2}",
pair1.first->first, pair1.first->second, pair1.second);
for each (Myhash_map::value_type elem in c1)
System::Console::Write(" [{0} {1}]", elem->first, elem->second);
System::Console::WriteLine();
// insert a single value with hint
Myhash_map::iterator it =
c1.insert(c1.begin(), Myhash_map::make_value(L'y', 25));
System::Console::WriteLine("insert(begin(), [L'y' 25]) = [{0} {1}]",
it->first, it->second);
for each (Myhash_map::value_type elem in c1)
System::Console::Write(" [{0} {1}]", elem->first, elem->second);
System::Console::WriteLine();
// insert an iterator range
Myhash_map c2;
it = c1.end();
c2.insert(c1.begin(), --it);
for each (Myhash_map::value_type elem in c2)
System::Console::Write(" [{0} {1}]", elem->first, elem->second);
System::Console::WriteLine();
// insert an enumeration
Myhash_map c3;
c3.insert( // NOTE: cast is not needed
(System::Collections::Generic::
IEnumerable<Myhash_map::value_type>^)%c1);
for each (Myhash_map::value_type elem in c3)
System::Console::Write(" [{0} {1}]", elem->first, elem->second);
System::Console::WriteLine();
return (0);
}
必要条件
ヘッダー: <cliext/hash_map>
名前空間: の cliext