더북(TheBook)

1.4 std::vector

앞서 살펴본 바와 같이 std::array는 C 스타일 배열의 향상된 버전입니다. 그러나 std::array는 실제 응용 프로그램 개발에서 유용하게 사용할 수 있는 몇몇 기능을 제공하지 않는다는 단점이 있습니다. std::array의 주요 단점은 다음과 같습니다.

std::array의 크기는 컴파일 시간에 결정되는 상수이어야 합니다. 따라서 프로그램 실행 중에는 변경할 수 없습니다.

크기가 고정되어 있어서 원소를 추가하거나 삭제할 수 없습니다.

std::array의 메모리 할당 방법을 변경할 수 없습니다. 항상 스택 메모리를 사용합니다.

대부분의 실제 응용 프로그램에서 데이터는 동적이며 고정 크기가 아닙니다. 예를 들어 앞에서 언급했던 병원 관리 시스템의 경우, 더 많은 의사를 고용할 수도 있고 응급 환자가 급격하게 증가할 수도 있습니다. 따라서 데이터의 크기를 미리 알고 있기가 그리 쉽지 않습니다. 그러므로 std::array를 사용하는 것이 항상 좋은 것은 아니며, 가변 크기의 데이터를 처리할 수 있는 컨테이너가 필요하기도 합니다.

이제 이러한 문제를 std::vector가 어떻게 해결하는지 살펴보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.