2.8 | 요약
이 장에서는 순차열 컨테이너에 대해 살펴봤다. 순차열 컨테이너는 가장 유연하기 때문에 가장 자주 사용할 것이다. 순차열 컨테이너 내부의 데이터에 대해서는 기본 정렬이 없지만, 원한다면 필요한 정렬 방식을 사용할 수 있다. 이 장에서 학습한 주요 내용은 다음과 같다.
• array<T,N> 컨테이너는 타입 T인 원소 N개를 저장한다. 일반 배열처럼 사용할 수 있지만, 배열 컨테이너는 자신의 크기를 알고 있어서 함수에 인수로 전달될 때 배열 개수를 지정하는 두 번째 인수가 필요 없다는 장점이 있다. 배열 컨테이너의 at() 함수 멤버를 호출하면 원소에 접근할 때 사용하는 인덱스를 검사하는 기능도 제공한다. 배열 컨테이너 사용은 일반 배열과 비교해도 오버헤드가 거의 없다.
• vector<T> 컨테이너는 타입 T인 원소를 원하는 만큼 저장할 수 있다. 벡터 컨테이너는 더 많은 원소를 수용할 수 있도록 크기가 자동으로 커진다. 벡터의 끝에서 원소를 추가하거나 삭제할 때만 효율적이다. 벡터 순차열 중간에 원소를 추가하거나 삭제하면 원소들을 이동해야 하므로 끝에서 처리할 때보다 느리다.
• 벡터 컨테이너는 배열처럼 인덱스를 사용해서 원하는 원소에 접근할 수 있으며 at() 함수 멤버를 호출하면 인덱스를 검사한다. 벡터는 일반 배열과 비교하면 오버헤드가 있지만, 대부분의 상황에서 차이를 느낄 정도는 아니다.
• deque<T> 컨테이너는 타입 T인 원소를 원하는 만큼 덱(double-ended queue)으로 저장할 수 있다. deque 컨테이너는 vector와 같은 방법으로 원소에 접근한다.
• deque 컨테이너의 앞과 뒤에서 원소를 추가하거나 삭제할 때 효율적으로 동작한다. 순차열 중간에 원소를 추가하거나 삭제하면 느리게 동작할 것이다.
• array, vector, deque 컨테이너는 const, non-const 랜덤 액세스 반복자와 역방향 반복자를 제공한다.