最終更新日時:
が更新

履歴 編集

function template
<hive>

std::hive::emplace_hint(C++26)

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

処理系

関連項目

名前 説明
emplace 要素を直接構築で挿入する
insert 要素を挿入する
insert_range Rangeの要素を挿入する

参照