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