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" 가 나오는것을 볼수 있었다.