std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::emplace_hint
提供: cppreference.com
<tbody>
</tbody>
template <class... Args> iterator emplace_hint( const_iterator hint, Args&&... args ); |
(C++11以上) | |
新しい要素をコンテナに挿入します。 要素が挿入されるべき位置の提案として hint が使用されます。 要素はその場で構築されます。 つまり、コピーもムーブも行われません。
要素の型 (value_type、つまり std::pair<const Key, T>) のコンストラクタは、この関数に与えられたものとまったく同じ引数が std::forward<Args>(args)... で転送されて、呼ばれます。
挿入によって再ハッシュが発生した場合は、すべてのイテレータが無効化されます。 そうでなければ、イテレータは影響を受けません。 参照は無効化されません。 再ハッシュは新しい要素数が max_load_factor()*bucket_count() より大きい場合にのみ発生します。
引数
| hint | - | 新しい要素の挿入位置の提案として使用されるイテレータ |
| args | - | 要素のコンストラクタに転送される引数 |
戻り値
新しく挿入された要素を指すイテレータを返します。
要素がすでに存在するために挿入が失敗した場合、その等しいキーを持つ既存の要素を指すイテレータを返します。
例外
何らかの操作によって例外が投げられた場合、この関数は効果を持ちません (強い例外保証)。
計算量
平均的には償却定数時間。 ワーストケースではコンテナのサイズに比例。
関連項目
| 要素をその場で構築します (パブリックメンバ関数) | |
| 要素またはノード (C++17以上)を挿入します (パブリックメンバ関数) |