template <class... Args>
iterator emplace(Args&&... args);
概要
コンテナに新しい要素を挿入する。要素は直接構築される(コピーもムーブもされない)。要素のコンストラクタはこの関数に渡された引数を与えることによって呼ばれる。
パラメータ
args...
: 要素のコンストラクタへ転送される引数パック。
テンプレートパラメータ制約
is_constructible_v<pair<key_type, mapped_type>, Arg...>
がtrue
であること
戻り値
挿入された要素へのイテレータを返す。
例
#include <flat_map>
#include <iostream>
int main()
{
std::flat_multimap<int, char> fm;
// キーと値のpairを作ることなく挿入できる
fm.emplace(3, 'A');
fm.emplace(1, 'B');
fm.emplace(4, 'C');
fm.emplace(3, 'D');
for (const auto& [key, value] : fm) {
std::cout << key << " : " << value << std::endl;
}
}
18
#include <flat_map>
#include <iostream>
int main()
{
std::flat_multimap<int, char> fm;
// キーと値のpairを作ることなく挿入できる
fm.emplace(3, 'A');
fm.emplace(1, 'B');
fm.emplace(4, 'C');
fm.emplace(3, 'D');
for (const auto& [key, value] : fm) {
std::cout << key << " : " << value << std::endl;
}
}
出力
1 : B
3 : A
3 : D
4 : C
バージョン
言語
- C++23
処理系
- Clang: ??
- GCC: ??
- Visual C++: ??
関連項目
名前 | 説明 |
---|---|
flat_multimap::insert |
要素を挿入する |
flat_multimap::insert_range |
Rangeを挿入する |
flat_multimap::emplace_hint |
ヒントを使って要素を直接構築する |