Program Languege/STL

컨테이너(Container)

Frozen0113 2014. 3. 18. 23:59

컨테이너(Container)

 

 컨테이너를 뜻 그대로 직영하면 통, 그릇이다. 쌀통에 쌀을 담고 술통에 술을 저장하듯이 컨테이너는 무엇인가를 저장하는 것이다. STL의 컨테이너는 타입이 같은, 즉 동질적인 객체의 집합을 저장하고 관리하는 역할을 한다. 다른 말로 컬렉션(Collection)이라고도 부른다.

 

 STL의 컨테이너는 자료를 저장하는 방식과, 삽입, 정렬, 삭제하는 관리 방식에 따라 크게 세 가지 부류로 구분된다.

 

 

시퀀스 컨테이너(Sequence Container)

 

 자료의 선형적이거나 순차적인 집합이며 자료를 저장하는 기본 임무에 충실한 가장 일반적인 컨테이너이다. 삽입된 자료를 무조건 저장하며 입력되는 자료에 특별한 제약이나 관리 규칙은 없다. 임의의 위치에 요소를 마음대로 삽입, 삭제할 수 있다. vector, list, deque가 이에 해당한다.

 

 

연관 컨테이너(Associative Container)

 

 자료를 무조건 저장하기만 하는 것이 아니라 일정한 규칙에 따라 자료를 조직화하여 관리하는 컨테이너이다. 정렬이나 해시 등의 방법을 통해 삽입되는 자료를 항상 일정한 기준에 맞는 위치에 저장해 놓으므로 검색 속도가 빠른 것이 장점이다. set, map이 이에 해당한다.

 

 

어댑터 컨테이너(Adapter Container)

 

 시퀀스 컨테이너를 변형하여 자료를 미리 정해진 일정한 방식에 따라 관리하는 것이 특징이다. 자료를 넣고 빼는 순서를 외부에서 마음대로 조작할 수 없으며 컨테이너의 규칙대로 조작해야 한다. stack, queue, PriorityQueue가 이에 해당한다.

 

 

 

출처 - 혼자 연구하는 C/C++