컨테이너는 다른 개체(요소)들의 모음을 저장하는 객체이다. 컨테이너는 클래스 템플릿으로 구현되어 자료형에 큰 유연성을 제공
한다.
컨테이너는 요소들의 저장 공간을 관리하고, 직접 또는 반복자를 통해 요소에 접근할 수 있는 멤버 함수를 제공한다.
컨테이너는 동적 배열(벡터), 큐(queue), 스택(stack), 힙(priority_queue), 연결 리스트(list), 트리 (set), 연관 배열(map) 등 프로그래밍에서 매우 일반적으로 사용되는 구조를 사용한다.
스택, 큐, 힙은 컨테이너 어댑터로서 구현된다. 컨테이너 어댑터는 완전한 컨테이너 클래스는 아니지만(예를 들어 스택에는 반복자가 없다.), 요소들을 다루기 위해서 deque 이나 list 같은 컨테이너 클래스의 한 객체에 대한 인터페이스를 제공한다.
기본 컨테이너는 사용되는 기본 컨테이너 클래스와 독립적으로 컨테이너 어댑터가 요소에 접근할 수 있는 방식으로 캡슐화 된다.