std::deque<T,Allocator>::emplace
提供: cppreference.com
template< class... Args > iterator emplace( const_iterator pos, Args&&... args ); |
(C++11以上) | |
新しい要素を pos
の前に直接挿入します。 要素は std::allocator_traits::construct を通して構築されます。 これは一般的にはコンテナによって提供される位置に要素をその場で構築するために placement new を使用します。 引数 args...
はコ���ストラクタに std::forward<Args>(args)... として転送されます。
すべてのイテレータ (終端イテレータも含む) が無効化されます。 pos == begin() または pos == end() の場合は、参照は無効化されません。 そうでなければ、参照も無効化されます。
目次 |
[編集] 引数
pos | - | 前に新しい要素が構築されるイテレータ |
args | - | 要素のコンストラクタに転送される引数 |
型の要件 | ||
-T (コンテナの要素型) は MoveAssignable, MoveInsertable および EmplaceConstructible の要件を満たさなければなりません。
|
[編集] 戻り値
挿入された要素を指すイテレータ。
[編集] 計算量
pos
とコンテナのいずれかの端の短い方の距離に比例。
[編集] 例外
値の型のコピーコンストラクタ、ムーブコンストラクタ、代入演算子、ムーブ代入演算子以外によって例外が投げられたか、いずれの端に単一の要素を挿入するために emplace
が使用されている間に例外が投げられた場合は、何の効果もありません (強い例外保証)。
そうでなければ、その効果は未規定です。
[編集] 関連項目
要素を挿入します (パブリックメンバ関数) |