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 개념을 활용한 삽입 계열 함수 중 하나예요.