• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    function
    <flat_map>

    std::flat_map::insert_range

    template<container-compatible-range<value_type> R>
    void insert_range(R&& rg);                        // (1) C++23
    

    概要

    Rangeを挿入し、コンテナを拡張する。

    これは、挿入された要素の数だけコンテナの size() を増やす。

    flat_map コンテナは重複したキーを持つ要素を許さないため、挿入操作はそれぞれの要素が他のコンテナ内の既存要素と同じキーかどうかをチェックする。もし同じであれば要素は挿入されない。

    重複した値を許す、類似したコンテナについては flat_multimap を参照。

    内部的に flat_map コンテナは、コンストラクト時に指定された比較オブジェクトによって要素を下位から上位へとソートして保持する。

    効果

    戻り値

    なし

    計算量

    備考

    • この操作はインプレース・マージを行うため、追加のメモリ確保を行う可能性がある

    #include <iostream>
    #include <flat_map>
    
    int main()
    {
      std::flat_map<int, char> fm = {
        {3, 'a'}
      };
    
      std::flat_map<int, char> fm2 = {
        {5, 'd'},
        {15, 'e'}
      };
    
      fm.insert_range(fm2);
    
      for (const auto& [key, value] : fm) {
        std::cout << key << " : " << value << std::endl;
      }
    }
    

    出力

    3 : a
    5 : d
    15 : e
    

    バージョン

    処理系

    関連項目

    名前 説明
    flat_map::insert 要素を挿入する
    flat_map::insert_or_assign 要素を挿入、あるいは代入する
    flat_map::emplace 要素を直接構築する
    flat_map::emplace_hint ヒントを使って要素を直接構築する
    flat_map::try_emplace キーが存在しない場合のみ要素を直接構築する