본문 바로가기

예전/STL

[STL] 컨테이너의 정의


STL은 standard template Library이다.


컨테이너


컨테이너란 부둣가에 많이 보이는 박스로, C++에선

비슷한 성질의 객체를 한군데에 모아 관리하고 저장하는 용기라는 뜻이다.


STL의 컨테이너는 크게 순차컨테이너, 정렬연관컨테이너, 어뎁터 컨테이너. 세 가지로 나뉠수 있다.


1. 순차 컨테이너 (Sequence container) - 삽입삭제에 제약이 없는 것들을 모아 놓은 것이다.


자료를 순차적으로 저장하는 방식에 있어 가장 일반적인 컨테이너이다. 

삽입된 자료를 해당 컨테이너 성질에 맞게 무조건 저장하며 데이터의 제약은 없다.

순차적으로 임의의 위치에 원하는 요소를 삽입 삭제할 수 있다.


대표적인 STL에는 벡터, 리스트, 덱이 있다.



2. 정렬 연관 컨테이너 (Associative container)


자료를 저장하는 것 뿐만 아니라 규칙에 따라 자료를 정렬하는 컨테이너이다.


정렬이나 해쉬등의 방법을 통해 삽입되는 자료를 항상 일정한 규칙(오름차순)에 따라 저장하기 때문에 검색 속도가 빠른 것이 장점이다.


데이터를 임의대로 정렬하거나 연관 관계에 의해서 정렬하는 방식에 대해 연결이 되어있는 것으로 map과 set이 있다.



3. 어뎁터 컨테이너 (Adapter container)


비슷한 성질의 객체를 저장하고 관리하는 역할을 담당하는 컨테이너이다.

정해진 자료구조에 의해 자료를 넣거나 빼는 방식에 대한 제약이 있다.


대표적인 STL에는 스택, 큐, 우선순위 큐가 있다.