[c++] 배열 초기화

강신현·2022년 1월 28일

배열을 초기화하는 여러가지 방법들을 알아보자.
(1차원 배열 기준으로 설명)

1. 반복문을 활용한 초기화

for문을 활용하여 모든 인덱스를 돌며 초기화 해주는 방법인데
배열의 크기가 클수록 귀찮다.

그리고 비효율적이라고 생각했는데 꼭 그렇지만은 않다고 한다.

2. 각 원소 직접 지정

위와 마찬가지로 배열의 크기가 클수록 귀찮다.

int arr[5] = {1,1,1,1,1};

3. 모든 원소 값을 0으로 초기화

int arr[5] = {};
int arr[5] = {0};
int arr[5] = {0,};

=> {0,0,0,0,0}

일부만 지정

지정한 일부만 담기고, 나머지는 모두 0으로 채워짐

int arr[5] = {1,};

=> {1,0,0,0,0}

4. std::fill_n

fill_n(변경 시작주소, 변경 원소 갯수, 변경 값)

int arr[5];
fill_n(arr,5,1);

=> {1,1,1,1,1}

5. std::fill

fill(변경 시작주소, 변경 종료주소, 변경 값)

int arr[5];
fill(arr,arr+5,1);

=> {1,1,1,1,1}

종료주소가 종료 원소의 index 가 아니라 +1을 해줘야 하는거 주의!

int arr[5];
fill(arr,arr+4,1); // index (0 ~ 3) 변경
fill(arr,arr+5,1); // index (0 ~ 4) 변경

Reference

https://namwhis.tistory.com/entry/C-%EB%B0%B0%EC%97%B4-%EC%B4%88%EA%B8%B0%ED%99%94-stdfill-stdfilln-%EC%A0%95%EB%A6%AC

profile
땅콩의 모험 (server)

0개의 댓글