티스토리 뷰

C++

[C++] 배열 초기화하는 방법

그레고리 2022. 2. 3. 23:41
728x90

백준 10809를 풀다가 c++ 배열 초기화 하는 방법이 헷갈려서 정리해본다. 

 

1. 선언시 초기화 

 

선언시 일일이 지정해준다. 이 경우 지정하지 않은 부분은 기본값(int의 경우 0)이 들아간다. 

int arr[3] = {1,2,3};
int arr2[3] = {1}; // 1,0,0으로 초기화 된다.

2. fill_n()

 

선언한 뒤에 fill_n()함수로 초기화한다. 원하는 개수 만큼 같은 값으로 초기화 할 수 있다. 

fill_n( array변수명, 초기화 시킬 값 개수 , 초기화 값 )

int arr[3];
fill_n(arr,3,1); // 1,1,1로 초기화 된다.

int arr2[5];
fill_n(arr2,3,1); // 앞에 3개는 1로 초기화 되지만 나머지 2개는 초기화 되지 않는다.

3. for문 

선언한 뒤에 for문으로 초기화 

int arr[3];
for(int i=0;i<3;i++){
	arr[i] = 1;
}

4. memset()

선언 후 memset으로 초기화 한다. 모두 같은 값으로 초기화 할 수 있다. 

컴파일러 마다 차이가 조금은 있지만 memset은 for문으로 초기화 하는 것보다 대체로 빠르다. 

memset(array변수명, 초기화값, 배열사이즈);

int arr[3];
memset(arr, 1, sizeof(arr));

 

참고로 전역변수는 초기화 하지 않아도 자동으로 0으로 초기화 되지만

지역변수는 초기화가 필요하다.

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함