最終更新日時:
が更新

履歴 編集

function template
<hive>

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

template <container-compatible-range<T> R>
void insert_range(R&& rg); // C++26

概要

Rangeの各要素を挿入する。

挿入位置はコンテナが決定するため、挿入する位置を指定することはできない(順序は未規定である)。

テンプレートパラメータ制約

  • Tが、*ranges::begin(rg)からhiveコンテナへのEmplaceInsertableであること
  • rg*thisが重なっていないこと

効果

Rangergの各要素のコピーを挿入する。範囲rgの各イテレータは、ちょうど1回だけ間接参照される。

戻り値

なし

計算量

挿入する要素数に比例して線形時間。挿入する各要素に対して、型Tのオブジェクトがちょうど1個構築される。

備考

要素が挿入された場合、終端イテレータ(past-the-end iterator)は無効になる。削除されなかった既存要素へのポインタ・参照・イテレータは無効にならない。

#include <hive>
#include <print>
#include <vector>

int main()
{
  std::hive<int> h;
  h.insert(1);

  // Rangeの要素を挿入する
  const std::vector<int> v = {2, 3, 4};
  h.insert_range(v);

  for (int x : h) {
    std::print("{} ", x);
  }
  std::println("");
}

出力例

1 2 3 4 

バージョン

言語

  • C++26

処理系

関連項目

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

参照