본문 바로가기

예전/STL

[STL] 컨테이너의 분류 및 정리 ( Vector, List, String, Deque )



1. Vector : 시퀀스 컨테이너 이면서 , 연속 메모리 기반 컨테이너이다.


특징 ① 메모리가 증가할 때 현재 메모리의 1.5배로 증가한다.

 ② 임의 접근 반복자를 사용하며 산술 연산이 가능하다.

 ③ 삽입, 삭제 보단 검색에 용이하다.

 ④ 삽입 삭제시 메모리를 재할당하고 컨테이너를 복사해야 한다.



2. List : 시퀀스 컨테이너 이면서 , 노드 기반 컨테이너이다.


특징 ① 삽입, 삭제에 용이하다. (리스트의 앞뒤에 추가할 수 있다.)

 ② 양방향 반복자를 제공하며 산술 연산이 불가하나, 이동은 가능하다.



3. String : 시퀀스 컨테이너 이면서 ,  연속 메모리 기반  컨테이너이다.


특징 ① 문자열 전용 컨테이너로 문자열 관련 함수를 제공한다.

 ② 임의 접근 반복자를 사용하며 산술 연산이 가능하다.

 ③ 메모리를 입력해 넣어도 정해진 메모리로 할당된다.

 ④ 삽입 삭제시 메모리를 재할당하고 컨테이너를 복사해야 한다.



4. Deque : 시퀀스 컨테이너 이면서 ,  연속 메모리 기반  컨테이너이다.


특징 ① 삽입, 삭제 보단 검색에 용이하다.

 ② 메모리의 삽입, 삭제가 앞뒤로 된다.

 ③ 임의 접근 반복자를 사용하며 산술 연산이 가능하다.

 ④ Vector, String과 달리 새로운 메모리 단위를 할당하여 새 요소를 추가한다.

     메모리를 할당할 땐 일정한 단위씩 할당된다.

 ⑤ 중간에 삽입할 때에는 앞 뒤중 개수가 적은 것을 밀어낸다.






[참고] http://blog.daum.net/coolprogramming

위의 블로그를 보고 공부한 후 정리한 자료 입니다.