반응형
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. 원소간 상호 연결 정보를 위해 추가적 메모리 비용 발생
반응형