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

履歴 編集

function template
<set>

std::set::insert_range(C++23)

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

概要

Rangerg の要素を挿入することにより、set コンテナを拡張する。

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

戻り値

なし

計算量

N = ranges::distance(rg) とすると、N log (size() + N) に比例

備考

  • 関数が呼ばれた後も、当該コンテナ内の要素を指す参照やイテレータは無効にはならない。
    なお、規格書に明確な記載は無いが、当該コンテナ内の要素を指すポインタも無効にはならない。

#include <iostream>
#include <set>
#include <vector>

int main ()
{
    std::set<int> s = {1, 2, 3};

    std::vector<int> v = {2, 3, 4};
    s.insert_range(v);

    for (int i : s) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    return 0;
}

出力

1 2 3 4 

関連項目

名前 説明
insert 要素を挿入する