deque::assign

deque::assign (내용을 특정 값/범위로 교체)

컨테이너의 내용을 주어진 값들로 모두 교체하는 멤버 함수예요. <deque> 헤더에 있어요.

출처: cppreference

본문

assign은 컨테이너의 내용을 새 값들로 교체해요. 세 가지 오버로드가 있어요.

void assign( size_type count, const T& value );            // (1)

template< class InputIt >
void assign( InputIt first, InputIt last );                // (2)

void assign( std::initializer_list<T> ilist );             // (3)
    1. 내용을 valuecount개 복사본으로 교체해요.
    1. 내용을 범위 [first, last)의 복사본으로 교체해요. 만약 두 인자 중 하나가 *this 안의 반복자이면 동작이 미정의예요. InputIt이 정수 계열 타입이면 이 오버로드는 (1)과 같은 효과예요(C++11까지).
    1. 내용을 ilist의 복사본으로 교체해요.

assign은 대입(=)과 비슷하지만, "n개의 동일한 값"이나 "반복자 범위나 초기화자 목록"으로 내용을 한 번에 갈아치울 수 있어요.

std::deque<int> d;
d.assign(5, 42);           // 42를 5개
d.assign({1, 2, 3});       // 1,2,3

기존 요소를 지우고 새로 채우는 방식이므로, 내용을 통째로 교체할 때 유용해요.

더 알아보기 (Learn more)

cppreference