deque::append_range

deque::append_range (범위를 뒤에 추가)

범위의 모든 요소를 deque의 끝(뒤)에 복사·삽입하는 멤버 함수예요. <deque> 헤더, C++23부터.

출처: cppreference

본문

append_range는 범위 rg의 요소 복사본을 end() 앞에, 순서를 뒤집지 않고 삽입해요.

template< container-compatible-range<T> R >
void append_range( R&& rg );
  • 모든 반복자(끝 반복자 포함)는 무효화되고, 참조는 무효화되지 않아요.
  • rg의 각 반복자는 정확히 한 번 역참조돼요.
  • 매개변수 rg: 컨테이너 호환 범위. 즉 요소가 T로 변환 가능한 input_range예요.
  • 복잡도: rg 크기에 선형. 새 요소마다 하나의 요소를 생성(emplace)해요.

타입 요구사항으로 T*ranges::begin(rg)에서 deque로 EmplaceConstructible이어야 해요. 그렇지 않으면 동작이 미정의예요.

push_back이나 insert를 반복하는 대신, 이미 있는 범위 전체를 뒤에 붙일 때 편리해요.

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

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

더 알아보기 (Learn more)

cppreference