unordered_multiset::insert
unordered_multiset に要素または要素範囲を挿入します。
// (1) single element pair<iterator, bool> insert( const value_type& Val ); // (2) single element, perfect forwarded template<class ValTy> pair<iterator, bool> insert( ValTy&& Val ); // (3) single element with hint iterator insert( const_iterator Where, const value_type& Val ); // (4) single element, perfect forwarded, with hint template<class ValTy> iterator insert( const_iterator Where, ValTy&& Val ); // (5) range template<class InputIterator> void insert( InputIterator First, InputIterator Last ); // (6) initializer list void insert( initializer_list<value_type> IList );
パラメーター
パラメーター |
説明 |
Val |
unordered_multiset に挿入する要素の値。 |
Where |
正しい挿入ポイントの検索を開始する場所 |
ValTy |
unordered_multiset が value_type の要素を構築するために使用できる引数の型を指定し、Val を引数として完全転送するテンプレート パラメーター。 |
First |
コピーされる最初の要素の位置。 |
Last |
コピーされる最後の要素の次の位置。 |
InputIterator |
入力反復子の要件を満たすテンプレート関数の引数。この反復子は、value_type オブジェクトの作成に使用できる型の要素を指し示します。 |
IList |
要素のコピー元の initializer_list。 |
戻り値
単一要素の insert メンバー関数 (1) および (2) は、新しい要素が unordered_multiset に挿入される位置を指す反復子を返します。
単一要素の with-hint メンバー関数 (3) および (4) は、新しい要素が unordered_multiset に挿入される位置を指す反復子を返します。
解説
この関数では、ポインターや参照は無効になりません。ただし、コンテナーを指すすべての反復子が無効になる場合があります。
要素を 1 つだけ挿入するとき、例外がスローされたが、コンテナーのハッシュ関数ではエラーが発生しなかった場合、コンテナーの状態は変更されません。 ハッシュ関数で例外がスローされた場合、結果は未定義になります。 複数の要素を挿入するときに例外がスローされた場合、コンテナーの状態は未指定ですが、有効な状態になっています。
コンテナーの value_type は、コンテナーに属する typedef であり、セットの場合、unordered_multiset<V>::value_type は型 const V です。
範囲を指定したメンバー関数 (5) は、範囲 [First, Last) の反復子によってアドレス指定された各要素に対応する unordered_multiset に要素値のシーケンスを挿入します。したがって、Last は挿入されません。 コンテナーのメンバー関数 end() は、コンテナー内にある最後の要素の直後の位置を参照します。たとえば、ステートメント m.insert(v.begin(), v.end()); は、v のすべての要素を m に挿入します。
初期化子リストのメンバー関数 (6) は initializer_list を使用して、unordered_multiset に要素をコピーします。
インプレースで構築された (つまり、コピーまたは移動操作が実行されない) 要素の挿入については、「unordered_multiset::emplace」および「unordered_multiset::emplace_hint」を参照してください。
コード例については、「multiset::insert」を参照してください。
必要条件
ヘッダー: <unordered_set>
名前空間: std