template<container-compatible-range<value_type> R>
void insert_range(R&& rg); // (1) C++23
概要
Rangeを挿入し、コンテナを拡張する。
これは、挿入された要素の数だけコンテナの size()
を増やす。
flat_set
コンテナは重複したキーを持つ要素を許さないため、挿入操作はそれぞれの要素が他のコンテナ内の既存要素と同じキーかどうかをチェックする。もし同じであれば要素は挿入されない。
重複した値を許す、類似したコンテナについては flat_multiset
を参照。
内部的に flat_set
コンテナは、コンストラクト時に指定された比較オブジェクトによって要素を下位から上位へとソートして保持する。
戻り値
なし
計算量
- Nをこの操作の前の
size()
、Mをranges::distance(rg)
として、N + MlogM
備考
- この操作はインプレース・マージを行うため、追加のメモリ確保を行う可能性がある
例
#include <flat_set>
#include <iostream>
int main()
{
std::flat_set<int> fs = {3};
std::flat_set<int> fs2 = {5, 15};
fs.insert_range(fs2);
for (int i : fs) {
std::cout << i << std::endl;
}
}
16
#include <flat_set>
#include <iostream>
int main()
{
std::flat_set<int> fs = {3};
std::flat_set<int> fs2 = {5, 15};
fs.insert_range(fs2);
for (int i : fs) {
std::cout << i << std::endl;
}
}
出力
3
5
15
バージョン
処理系
- Clang: ??
- GCC: ??
- Visual C++: ??
関連項目
名前 | 説明 |
---|---|
flat_set::insert |
要素を挿入する |
flat_set::emplace |
要素を直接構築する |
flat_set::emplace_hint |
ヒントを使って要素を直接構築する |