template <class... Args>
iterator emplace_hint(const_iterator hint, Args&&... args); // C++26
概要
ヒント付きで要素を直接構築で挿入する。
この関数の引数args...は、要素型Tのコンストラクタ引数である。当関数の内部で要素型Tのコンストラクタを呼び出し、追加する要素を構築する。
第1引数hintは挿入位置のヒントであるが、hiveの挿入位置はコンテナが決定するため、この引数は無視される。この関数は、他のコンテナと同じインタフェースで扱えるようにするために提供されている。
適格要件
型Tが、args...からhiveコンテナへのEmplaceConstructibleであること。
効果
std::forward<Args>(args)...で構築した型Tのオブジェクトを挿入する。hint引数は無視される。
例外が送出された場合、副作用は生じない。
戻り値
新たに挿入された要素を指すイテレータ。
計算量
定数時間。型Tのオブジェクトがちょうど1個構築される。
備考
この関数呼び出しにより、終端イテレータ(past-the-end iterator)は無効になる。削除されなかった既存要素へのポインタ・参照・イテレータは無効にならない。
引数args...は、直接的または間接的に*thisが保持する値を参照してもよい。
例
#include <hive>
#include <print>
int main()
{
std::hive<int> h;
// hintは無視される。emplaceと同じく直接構築で挿入する
h.emplace_hint(h.begin(), 1);
h.emplace_hint(h.end(), 2);
for (int x : h) {
std::print("{} ", x);
}
std::println("");
}
出力例
1 2
バージョン
言語
- C++26
処理系
- Clang: 22 ❌
- GCC: 16.1 ❌
- Visual C++: 2026 Update 2 ❌
関連項目
| 名前 | 説明 |
|---|---|
emplace |
要素を直接構築で挿入する |
insert |
要素を挿入する |
insert_range |
Rangeの要素を挿入する |
参照
- P0447R28 Introduction of
std::hiveto the standard library- C++26で
hiveが追加された
- C++26で