더북(TheBook)

1.8.7 배열용 컨테이너

기존 C 배열의 대안으로 비슷한 방식으로 사용할 수 있는 두 가지 컨테이너 타입을 소개하고자 한다.

1.8.7.1 표준 벡터

배열과 포인터는 C++ 언어의 핵심 부분이다. 반대로 std::vector는 표준 라이브러리에 속하며 클래스 템플릿으로 구현한다. 그럼에도 불구하고 배열과 매우 유사하게 사용할 수 있다. 예를 들어 두 배열 vw를 설정하는 1.8.1절의 예제를 벡터로 바꾸면 다음과 같은 코드가 된다.

#include <vector>

int main()
{
    std::vector<float> v(3), w(3);
    v[0] = 1; v[1] = 2; v[2] = 3;
    w[0] = 7; w[1] = 8; w[2] = 9;
}

벡터의 크기는 컴파일할 때 알 필요가 없다. 벡터는 4.1.3.1절에서 볼 수 있듯이 존재하는 동안 크기를 조정할 수도 있다.

요소별로 값을 설정하는 방법은 그다지 좋은 방법이 아니다. C++11에서는 초기화 목록(Initializer List)을 사용해 초기화할 수 있다.

std::vector<float> v = {1, 2, 3}, w = {7, 8, 9};
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.