forward_list_assign
forward_list_assign (std::forward_list::assign — 내용 교체)
std::forward_list의 내용 전체를 새 값들로 통째로 교체하는 멤버 함수예요. 개수+값, 이터레이터 범위, 초기화 목록 방식으로 지정할 수 있어요.
출처: cppreference
본문
시그니처는 다음과 같아요.
void assign( size_type count, const T& value ); // (1) (since C++11)
template< class InputIt >
void assign( InputIt first, InputIt last ); // (2) (since C++11)
void assign( std::initializer_list<T> ilist ); // (3) (since C++11)
컨테이너의 내용을 교체해요.
(1) 내용을 값 value의 복사본 count개로 교체해요.
(2) 내용을 범위 [first, last)의 원소 복사본들로 교체해요.
두 인자 중 하나가 *this 안으로의 이터레이터라면 동작이 정의되지 않아요.
InputIt이 정수 타입이라면 (2) 오버로드는 (1)과 같은 효과를 가져요. (until C++11)
복잡도
count 또는 std::distance(first, last)에 선형(linear)이에요.
예제
#include <forward_list>
#include <iostream>
int main()
{
std::forward_list<int> fl;
fl.assign({1, 2, 3}); // 3,2,1 순서 (앞에 삽입)
fl.assign(2, 7); // 7,7
for (int x : fl) std::cout << x << ' '; // 7 7
}