deque::assign_range

deque::assign_range (범위로 내용 교체)

범위의 각 요소 복사본으로 컨테이너의 내용을 교체하는 멤버 함수예요. <deque> 헤더, C++23부터.

출처: cppreference

본문

assign_range는 컨테이너의 요소를 rg의 각 요소 복사본으로 교체해요.

template< /*container-compatible-range*/<T> R >
void assign_range( R&& rg );
  • 모든 반복자(끝 반복자 포함)와 모든 요소 참조가 무효화돼요.
  • 범위 rg의 각 반복자는 정확히 한 번 역참조돼요.
  • rg가 컨테이너와 겹치면 동작이 미정의예요.
  • 매개변수 rg: 참조 타입이 컨테이너 요소 타입으로 변환 가능한 input_range.
  • 복잡도: rg 크기에 선형.

assign(ilist)이나 반복자 범위로 교체하던 것을, ranges 개념의 단일 범위 객체로 교체할 수 있게 해주는 함수예요.

std::deque<int> d{1, 2, 3, 4};
int arr[] = {9, 8, 7};
d.assign_range(arr);   // d == {9,8,7}

기존 내용을 버리고 새 범위 내용으로 채우는 간결한 방법이에요.

더 알아보기 (Learn more)

cppreference