가끔 배열이나 벡터를 전부 초기화 해야할 일이 생긴다.
평소에 for문을 돌려서 초기했다면 fill, fiil_n을 사용해서 코드를 간결하게 만들자.
1) fill
template< class ForwardIt, class T >
void fill( ForwardIt first, ForwardIt last, const T& value );
fill(초기 위치, 마지막 위치, 초기화값); (초기위치<= arr < 마지막위치)
예제 : fill(arr,arr+5,1);
2) fill_n
template< class OutputIt, class Size, class T >
void fill_n( OutputIt first, Size count, const T& value );
fill_n(초기 위치, 사이즈, 초기화값);
예제 : fill_n(arr,5,1);
0으로 초기화하려면 memset(arr, 0, sizeof(arr)); 이 제일 좋다.
그러나, fill, fill_n을 써도 문제 없다.
그리고 2차원 이상의 배열의 경우 fill_n은 1차원으로 인식하는 문제가 있으므로 fill을 사용하는 습관을 들이자.
예제 : fill(&arr[0][0], &arr[5][3], 7);
결론 : fill 마스터하자
'C++ STL' 카테고리의 다른 글
[C++][STL] set과 unordered_set의 차이 (0) | 2021.11.11 |
---|---|
[C++][STL] Hash Set (0) | 2021.10.21 |
[C++][STL] sort (0) | 2021.10.04 |
[C++][STL] tuple, tie (0) | 2021.09.26 |
[C++][STL] Queue (0) | 2021.09.26 |