vector 선언 시 []괄호와 ()괄호의 차이가 있다.
- []괄호로 선언시, 텅 빈 이차원 배열이라고 생각하면 된다. 각 벡터의 인덱스마다 동적으로 크기를 할당할 수 있다.
- ()괄호로 선언시, 처음에 그 공간들을 만든 후에 동적으로 크기를 늘릴 수 있다.
예시로 확인해 보자면
[]괄호로 벡터 선언시,
[]괄호로 선언 시에는 배열의 높이에는 제한을 두고, 각 층마다는 동적으로 크기를 할당하겠다는 뜻이다.
위 코드는 벡터의 인덱스를 넘었으므로 에러가 나게 된다.
출력을 안해서 에러가 안나 보일 수 있겠지만 비정상적으로 종료된 것을 커맨드에서 확인할 수 있다.
()괄호로 벡터 선언시,
이 코드에서는 처음에 선언한 1001의 크기를 벗어났다.
하지만 처음 선언한 1001의 크기는 사실 큰 의미는 없다.
1001은 그냥 벡터를 처음에 할당할 때 초기화를 해준 값이라고 생각하면 된다.
결과 창에서 확인할 수 있듯이, ()괄호로 선언한 벡터도 동적으로 크기가 늘어나는 것을 확인할 수 있다.
결론
1. 나는 크기가 동적인 배열을 여러 개 쓰고 싶다 ! 각 배열들은 초기화가 안 되어 있어도 상관 없다 !
-> []괄호로 벡터 선언
2. 나는 처음에 특정 개수가 초기화가 되어있고 크기도 동적으로 늘어나는 배열을 한 줄 쓰고 싶다 !
-> ()괄호로 벡터 선언
'코딩 > C++' 카테고리의 다른 글
[C++] Comparator 사용시 주의사항 (0) | 2021.08.17 |
---|---|
[C++] 2차원 배열 0, -1로 초기화하기 memset 메서드 사용 (0) | 2021.08.06 |
<algorithm> STL에서 sort의 comparator 작성 시, invalid comparator 문제 (0) | 2021.07.30 |
[C++] std::sort 오름차순 내림차순 정렬 (0) | 2021.07.28 |
[C++] 문자열을 공백까지 입력받는 방법 (feat. 그대로 출력하기) (0) | 2021.07.28 |