Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 기본값 하나로 배열 전체 초기화하는 방법

배열을 0으로 초기화하기

C++에서 배열 전체를 0으로 초기화하는 것은 매우 간단합니다. 다음과 같이 작성하면 됩니다.

int arr[10] = {0};

중괄호 안에 0을 하나만 지정하면 나머지 요소들이 자동으로 0으로 채워져, 배열의 모든 요소가 0으로 초기화됩니다.

0이 아닌 값으로 초기화할 때의 한계

그러나 위와 같은 방식으로는 배열 전체를 0이 아닌 값으로 초기화할 수 없습니다. 다음 예시를 살펴보겠습니다.

int arr[10] = {5};

위 코드에서 실제로 5로 초기화되는 것은 첫 번째 요소뿐입니다. 나머지 요소는 모두 0으로 초기화되므로 주의해야 합니다.

for 반복문을 활용한 초기화

배열 전체를 0이 아닌 특정 기본값으로 초기화하려면 for 반복문을 사용하는 것이 가장 일반적인 방법입니다.

for(i = 0; i<10; i++) {
    arr[i] = 5;
}

위 코드에서는 배열의 모든 요소가 5로 초기화됩니다.

참고: std::fill 활용하기

C++에서는 <algorithm> 헤더의 std::fill 함수를 사용하면 반복문 없이도 더 간결하게 배열을 초기화할 수 있습니다.

#include <algorithm>
std::fill(std::begin(arr), std::end(arr), 5);

전체 예제 프로그램

지금까지 설명한 세 가지 경우를 모두 확인할 수 있는 프로그램은 다음과 같습니다.

#include <iostream>
using namespace std;
int main() {
    int a[10] = {0};
    int b[10] = {5};
    int c[10];
    for(int i = 0; i<10; i++) {
        c[i] = 5;
    }
    cout<<"Elements of array a: ";
    for(int i = 0; i<10; i++) {
        cout<< a[i] <<" ";
    }
    cout<<"\n";
    cout<<"Elements of array b: ";
    for(int i = 0; i<10; i++) {
        cout<< b[i] <<" ";
    }
    cout<<"\n";
    cout<<"Elements of array c: ";
    for(int i = 0; i<10; i++) {
        cout<< c[i] <<" ";
    }
    cout<<"\n";
    return 0;
}

실행 결과

위 프로그램의 출력 결과는 다음과 같습니다.

Elements of array a: 0 0 0 0 0 0 0 0 0 0
Elements of array b: 5 0 0 0 0 0 0 0 0 0
Elements of array c: 5 5 5 5 5 5 5 5 5 5

출력 결과에서 볼 수 있듯이, {0}으로 초기화한 배열 a는 모든 요소가 0이고, {5}로 초기화한 배열 b는 첫 번째 요소만 5이며, for 반복문으로 초기화한 배열 c는 모든 요소가 5로 설정된 것을 확인할 수 있습니다.