본문 바로가기

- Programming/- STL

★ 1. STL Vector와 List 설명 및 장단점

반응형

STL Vector와 List 설명 및 장단점


- Vector, List 설명 -


= Vector =

벡터는 일반적인 배열처럼 개체들을 연속적인 메모리 공간에 저장한다.

즉, iterator 뿐 아니라 position index(operator [])로도 접근이 가능하다는 것이다.

동적으로 확장/축소가 가능한 동적 배열(dynamic array)로 구현되어 있다.


= List =

리스트는 double linked list로 구현되어 있다.

노드가 양 쪽으로 모두 연결 되어 있으며 삽입/삭제가 자주 발생하는 경우에 용이하다.


- Vector, List 장단점 -


= Vector =

장점 : 1. 개별 원소들 접근 가능

   2. 원소를 마지막에 삽입 하는 것이 빠름

   3. 랜덤으로 원소 순회가 가능

   4. 개별 원소에 대한 접근 속도가 빠름


단점 : 1. 컨테이너 끝이 아닌 곳에 삽입/제거시 성능이 현전히 떨어짐

   2. 동적이라 확장/축소가 편하나 확장시 비용이 크다.


= List =

장점 : 1. 컨테이너 어느 위치에서라도 삽입/제거가 빠름

   2. 원소들의 컨테이너 내 이동이 빠름


단점 : 1. 원소의 인덱스로 직접 접근이 불가능함

   2. 특정 원소에 접근하려면 처음이나 끝부터 선형 탐색을 해야함

   3. 컨테이너 내 순회가 forward / reverse만 가능하여 느림

   4. 원소간 상호 연결 정보를 위해 추가적 메모리 비용 발생

반응형