STL 벡터와 리스트의 차이는 무엇인가?
STL 벡터와 리스트는 순차 컨테이너에 속하며 요소들의 보관순서를 유지할 수 있는 특징을 가지고 있다.
벡터 (Vector)
https://doanhan.tistory.com/26?category=581362
[C++] 순차 컨테이너와 벡터
[C++] 순차 컨테이너와 벡터 순차 컨테이너 (Sequence Container) 요소들의 보관 순서를 유지할 수 있도록 해주며 어떤 위치든 삽입, 제거가 가능하지만 성능에 있어서는 각각 다른 특성들을 가진다.
doanhan.tistory.com
벡터는 배열(Array)처럼 개체들을 연속적인 메모리 공간에 저장한다. 즉, 반복자 외에도 인덱스를 통해서 개체들에 접근할 수 있다.
리스트 (List)
https://doanhan.tistory.com/27?category=581362
[C++] 데큐와 리스트
[C++] 데큐와 리스트 순차 컨테이너와 그 컨테이너의 속한 벡터를 알아보았었다. 이번에는 순차 컨테이너에 속하는 데큐와 리스트를 알아볼 것이다. 벡터와 비교해서 어느부분이 차이가 있고
doanhan.tistory.com
리스트는 이중 연결 리스트로 구성이 되어있으며, 노드가 양방향으로 연결이 되어있기 때문에 삽입/삭제에 용이하다.
벡터와 리스트의 차이는 무엇인가?
일단 삽입/삭제 측면에서 본다면 만약 끝부분이라면 벡터가 빠른 속도를 보이지만(pop_back) 끝 외에 다른 요소들을 삽입/삭제하는 것은 리스트가 빠르다고 할 수 있다. 특정 요소에 접근 측면에서 볼때는 벡터는 반복자 외에도 인덱스가 주어진다면 접근이 편리하지만 리스트는 선형 탐색을 통해 처음이나 끝에서 부터 접근을 해야한다.
게임적인 측면에서 볼때 벡터는 삽입/삭제가 빈번하지는 않지만 자주 사용되는 무기 리스트들 같은 곳에 사용하는 것이 좋으며, 리스트는 삽입/삭제가 빈번한 캐릭터 리스트 같은 곳에 사용하면 좋을 것 같다.
벡터와 배열의 차이는 무엇인가?
벡터와 배열은 유사한 성질을 가지고 있다고 볼수 있다. 배열은 처음에 길이를 선언하여 고정된 길이를 가지지만 벡터는 동적으로 변경이 가능하다. 하지만 그만큼 동적으로 할당하기때문에 배열보다 많은 메모리 사용량을 가진다.
리스트, 벡터, 배열은 순차적인 성질을 가지고 있지만 각각의 장단점을 가지고 있다. 벡터는 요소에 접근이 편리하다는 장점, 리스트는 요소를 추가/삭제가 용이한 장점 등 각각의 장단점을 잘 파악하고 그것에 맞는 활용을 할때 최고의 효율을 낼 수 있기 때문에 숙지를 잘 하는게 좋을것 같다
'Game Programming > 자문자답' 카테고리의 다른 글
SYN과 ACK는 무엇인가? (0) | 2022.11.07 |
---|---|
맵과 해쉬의 차이는 무엇인가? (0) | 2022.10.12 |
참조 카운트란 무엇인가? (0) | 2022.09.15 |
크리티컬 섹션이란 무엇인가? (0) | 2022.09.14 |
렌더링 파이프라인이란 무엇인가? (0) | 2022.09.13 |