• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function template
    <flat_set>

    std::flat_set::emplace_hint

    template <class... Args>
    iterator emplace_hint(const_iterator hint, Args&&... args);
    

    概要

    要素が配置されるべき場所を示唆するパラメータ hint を使って、コンテナに新しい要素を挿入する。要素は直接構築される(コピーもムーブもされない)。要素のコンストラクタはこの関数に渡された引数と同じ引数で呼ばれる。

    パラメータ

    • hint : 新しい要素をどこへ挿入するかを示唆するために使われるイテレータ
    • args... : 要素のコンストラクタへ転送される引数パック

    戻り値

    新たな要素が追加された場合、その追加された要素を指すイテレータ。新たな要素が追加されなかった場合、既にあった要素を指すイテレータ。

    計算量

    一般にコンテナのサイズについて対数時間だが、新しい要素が hint の前に挿入された場合は償却定数時間。

    #include <flat_set>
    #include <iostream>
    
    int main()
    {
      std::flat_set<int> fs = {3, 1, 4};
    
      // キー5の要素が最後尾に追加されることが事前にわかっているので、fs.end()をヒントとして与える
      fs.emplace_hint(fs.end(), 5);
    
      for (int i : fs) {
        std::cout << i << std::endl;
      }
    }
    

    出力

    1
    3
    4
    5
    

    バージョン

    言語

    • C++23

    処理系

    関連項目

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