set_insert_range
set_insert_range (std::set::insert_range — 범위 삽입)
std::set에 범위(range)의 원소들을 삽입하는 멤버 함수예요. 중복 키는 무시되고 기존 원소가 유지돼요.
출처: cppreference
본문
시그니처는 다음과 같아요.
template< container-compatible-range<value_type> R >
void insert_range( R&& rg ); // (since C++23)
범위 rg의 각 원소를 *this에 삽입해요. 각 원소에 대해 rg의 원소가 가진 키와 같은 키가 이미 있으면 그 원소를 삽입하지 않아요. 범위 rg의 각 이터레이터는 정확히 한 번 역참조돼요. rg가 컨테이너와 겹치면 동작이 정의되지 않아요.
매개변수
rg: 원소들이value_type으로 변환 가능한 container compatible range.
복잡도
N·log(size() + N). 여기서 N은 ranges::distance(rg)예요.
예제
#include <iostream>
#include <set>
int main()
{
std::set<int> s{1, 3};
s.insert_range(std::array{2, 3, 4}); // 3은 이미 있어 무시
for (int x : s) std::cout << x << ' '; // 1 2 3 4
}