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
処理系
- Clang: 22 ❌
- GCC: 16.1 ❌
- Visual C++: 2026 Update 2 ❌
関連項目
| 名前 | 説明 |
|---|---|
insert |
要素を挿入する |
emplace |
要素を直接構築で挿入する |
参照
- P0447R28 Introduction of
std::hiveto the standard library- C++26で
hiveが追加された
- C++26で