티스토리 뷰

memset(시작위치, 변경값, 크기): 

헤더 <cmemory>

1바이트 단위로 초기화, bool 이나 char 에 적합.

int형은 1바이트 넘어 부적합.

 

ex)

bool arr[10];

memset(arr, false, sizeof(arr));

 

fill_n(초기화할 배열, 자리수, 초기화할 값):

#include <algorithm>

직접 루프를 돌리면서 초기화 하는 방식.

자료형관계없이 사용가능.

ex) fill_n(arr, sizeof(arr)/sizeof(int), 3)

 

fill(초기화할 원소의 시작주소, 초기화할 원소의 종료주소, 초기화할 값):

ex)

fill(arr, arr+10, 1);

fill(&arr[0], &arr[10], 1);

 

2d array도 초기화 가능:

int arr[10][10];

fill(&arr[0][0], &arr[9][9], 0);  // 두번째 인자는 끝나는 위치 +1 이다 

 

또, 찾아보니 fill_n은 내부적으로 memset이 가능하면 memset으로 수행되고 안되면 iteration으로 초기화 작업을 한다고 한다. 따라서 알고리즘 문제를 풀때는 그냥 fill_n을 쓰면 될꺼 같다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함