deque::insert_range

deque::insert_range (범위를 지정 위치에 삽입)

범위의 요소 복사본을 지정 위치 앞에, 순서를 뒤집지 않고 삽입하는 멤버 함수예요. <deque> 헤더, C++23부터.

출처: cppreference

본문

insert_rangerg의 요소 복사본을 pos 앞에 순서를 뒤집지 않고 삽입해요.

template< container-compatible-range<T> R >
iterator insert_range( const_iterator pos, R&& rg );
  • 모든 반복자(끝 반복자 포함)가 무효화돼요. 참조는 pos == begin() 또는 pos == end()인 경우를 제외하면 무효화돼요.

  • 범위 rg의 각 반복자는 정확히 한 번 역참조돼요.

  • rg가 컨테이너와 겹치면 동작이 미정의예요.

  • 복잡도: rg 크기와 삽입 위치 사이 요소 수 중 작은 값에 선형.

  • 매개변수 pos: 내용이 삽입될 위치 바로 앞.

  • 매개변수 rg: 요소가 T로 변환 가능한 컨테이너 호환 범위.

  • 반환 값: 삽입된 첫 요소를 가리키는 반복자.

insert를 반복 호출하는 대신 범위 전체를 한 번에 끼워 넣을 때 편리해요.

std::deque<int> d{1, 2, 5, 6};
int mid[] = {3, 4};
d.insert_range(d.begin() + 2, mid);   // d == {1,2,3,4,5,6}

C++20 ranges 개념을 활용한 삽입 계열 함수예요.

더 알아보기 (Learn more)

cppreference