std::unordered_multiset<Key,Hash,KeyEqual,Allocator>:: emplace
|
template
<
class
...
Args
>
iterator emplace ( Args && ... args ) ; |
(C++11以降)
(constexpr C++26以降) |
|
与えられた args を使用して、その場で構築された新しい要素をコンテナに挿入します。
新しい要素のコンストラクタは、emplaceに渡された引数と全く同じ引数で呼び出され、
std::
forward
<
Args
>
(
args
)
...
によって転送されます。
value_type
が
EmplaceConstructible
ではなく、
unordered_multiset
に
args
から構築できない場合、動作は未定義です。
操作後に新しい要素数が元の
max_load_factor()
*
bucket_count()
より大きい場合、リハッシュが発生します。
リハッシュが発生した場合(挿入による)、すべてのイテレータは無効化されます。それ以外の場合(リハッシュなし)、イテレータは無効化されません。
目次 |
パラメータ
| args | - | 要素のコンストラクタに転送する引数 |
戻り値
挿入された要素へのイテレータ。
例外
何らかの理由で例外がスローされた場合、この関数は何も効果を持ちません( strong exception safety guarantee )。
計算量
償却計算では平均的に定数時間、最悪ケースではコンテナのサイズに対して線形時間。
注記
emplaceの注意深い使用により、新しい要素を不必要なコピー操作やムーブ操作を回避しながら構築することが可能になります。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
ヒントを使用して要素をその場で構築する
(公開メンバ関数) |
|
|
要素を挿入する
またはノード
(C++17以降)
(公開メンバ関数) |