반응형
만약 특정한 데이터를 찾을 경우 벡터가 리스트보다 빠르다. 왜냐하면 벡터가 연속된 메모리를 사용하고, 또 operator[]를 사용하여 일정한 시간에 액세스할 수 있기 때문이다. 반면에 리스트는 노드들이 일련의 연결로 구성되어 있으며 특정 요소에 액세스하려면 리스트 전체의 처음부터 끝까지 확인해야 하기 때문입니다.
그렇지만, 컨테이너 중간에 요소를 삽입하거나 삭제해야 하는 경우 리스트가 일반적으로 벡터보다 빠릅니다. 이렇게 하면 반복자와 참조가 무효화되지 않습니다. 반면에 벡터를 사용하면 메모리를 재할당하고 메모리를 재할당해야 할 수 있습니다. 이럴 경우 모든 요소를 새 메모리 위치에 복사합니다. 이로 인해 리스트가 벡터보다 작업을 빠르게 진행할 수 있습니다. 그렇지만, 리스트의 각 요소는 별도의 노드로 저장되고 각 노드에는 다음 및 이전 요소에 대한 포인터가 포함되어 있으므로 리스트가 벡터보다 더 많은 메모리를 사용한다는 점에 유의해야 한다.
반응형
'공부 > 기타' 카테고리의 다른 글
헤더(.h) 파일은 하나의 cpp파일만 가질 수 있을까? (0) | 2023.01.14 |
---|---|
삽입, 삭제가 계속 일어난다고 했을 때 Vector가 느릴까? List가 느릴까? (0) | 2023.01.13 |
정렬 알고리즘 중 가장 빠른 알고리즘은 무엇일까? (0) | 2022.12.29 |
온라인 게임에서 유저들을 관리하기 위해 효율적인 정렬 알고리즘과 그 이유는? (0) | 2022.12.26 |
상속할 때 public 상속과 protected 상속의 차이 (0) | 2022.12.26 |