더북(TheBook)

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 랜덤 액세스 반복자와 역방향 반복자를 제공한다.

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