더북(TheBook)

1.4.1 std::vector - 가변 크기 배열

제목에서 알 수 있듯이 std::vector는 C 스타일 배열 또는 std::array가 가지고 있는 가장 두드러진 문제 중 하나인 ‘고정 크기’ 문제를 해결합니다. std::vector는 초기화 과정에 데이터의 크기를 제공하지 않아도 됩니다.

다음은 벡터를 초기화하는 몇 가지 방법입니다.

// 크기가 0인 벡터 선언
std::vector<int> vec;

// 지정한 초깃값으로 이루어진 크기가 5인 벡터 선언
std::vector<int> vec = {1, 2, 3, 4, 5};

// 크기가 10인 벡터 선언
std::vector<int> vec(10);

// 크기가 10이고, 모든 원소가 5로 초기화된 벡터 선언
std::vector<int> vec(10, 5);

첫 번째 초기화 코드처럼 벡터는 원소 크기를 지정하지 않고 선언할 수 있습니다. 만약 벡터의 크기를 명시적으로 지정하지 않거나 또는 초깃값을 지정하여 크기를 유추할 수 있게 코드를 작성하지 않을 경우, 컴파일러 구현 방법에 따른 용량(capacity)을 갖는 벡터가 생성됩니다. 벡터의 크기는 벡터에 실제로 저장된 원소 개수를 나타내는 용어이며, 용량과는 다른 의미입니다. 그러므로 첫 번째 초기화의 경우, 크기는 0이지만 용량은 0 또는 작은 양수일 수 있습니다.

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