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}
기존 내용을 버리고 새 범위 내용으로 채우는 간결한 방법이에요.