deque::prepend_range

deque::prepend_range (범위를 앞에 추가)

범위의 요소 복사본을 컨테이너의 시작 부분(앞)에, 순서를 뒤집지 않고 삽입하는 멤버 함수예요. <deque> 헤더, C++23부터.

출처: cppreference

본문

prepend_rangerg의 요소 복사본을 begin() 앞에 순서를 뒤집지 않고 삽입해요.

template< container-compatible-range<T> R >
void prepend_range( R&& rg );
  • 범위 rg의 각 반복자는 정확히 한 번 역참조돼요.

  • 모든 반복자(끝 반복자 포함)가 무효화되고, 참조는 무효화되지 않아요.

  • 복잡도: rg 크기에 선형.

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

  • 타입 요구사항: T*ranges::begin(rg)에서 deque로 EmplaceConstructible이어야 하고, MoveInsertable이며 T가 MoveAssignable이어야 해요.

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

std::vector에는 없는 앞쪽 추가(상수 시간)가 deque에서 가능한데, range 전체를 앞에 붙이는 간결한 방법이에요. append_range의 앞쪽 대칭 버전이죠.

더 알아보기 (Learn more)

cppreference