template <class... Args>
pair<iterator, bool> emplace(Args&&... args);
概要
コンテナに新しい要素を挿入する。要素は直接構築される(コピーもムーブもされない)。要素のコンストラクタはこの関数に渡された引数を与えることによって呼ばれる。
パラメータ
args...
: 要素のコンストラクタへ転送される引数パック。
戻り値
要素へのイテレータと挿入されたかどうかを示す bool
からなる pair
を返す。
first
に新しく挿入された要素またはすでに set
に格納されていた同じキー値の要素を指すイテレータが、second
には、要素が挿入されたときに true
が、同じキー値の要素が存在したときに false
が設定される。
iterator
はメンバ型であり、双方向イテレータとして定義される。
計算量
コンテナサイズについて対数時間。
備考
この関数が呼ばれた後も、当該コンテナ内の要素を指す参照やイテレータは無効にはならない。
なお、規格書に明確な記載は無いが、当該コンテナ内の要素を指すポインタも無効にはならない。
例
出力
42
バージョン
言語
- C++11
関連項目
名前 | 説明 | 対応バージョン |
---|---|---|
emplace_hint |
ヒントを使って要素を直接構築する | C++11 |
insert |
要素を挿入する |