[C++] STL array of array initialization

신선한양배추·2022년 1월 20일
0
post-thumbnail
array<int, 1000> arr;
array<int, 1000> arr2{};

기본적으로 위와 아래 선언의 차이는 위는 값이 뭐가 들어가있는지 보장이 안되고 아래는 0(int의 default값)으로 초기화 되어있다는것이다.
그런데 array가 중첩되면 애매해진다.

array<array<bool,2000>,2000> arr{};

이렇게 array가 중첩되면 arr 안에있는 각각의 array는 어떻게 되어있을까? 직접 테스트해보았다.

#include<bits/stdc++.h>
using namespace std;

int main(){
  array<array<int,1000>,1000> arr{};
  for(int i= 0; i<1000; ++i){
    for(int j= 0; j<1000; ++j){
      if(arr[i][j] != 0){
        cout << "not zero";
        return 1;
      }
    }
  }
  cout << "clear";
}

이 코드는 1000*1000 배열안에 하나라도 0이 아닌게 있으면 "not zero"를 출력하고 종료한다. 실행결과는 텍스트모두 0으로 초기화 되어서 "clear"가 나왔다.

대조군으로 {}를 안하면 어떻게 되는지도 테스트 해보았는데 "not zero" 가 나오는것을 볼수 있었다.

profile
문서는 독자를 위해 쓰는것

0개의 댓글

관련 채용 정보