공부/기타

데이터 내부에 값이 1만개 이하일 경우 Vector가 빠를까? List가 빠를까?

셩잇님 2023. 1. 11. 16:24
반응형

 

 

만약 특정한 데이터를 찾을 경우 벡터가 리스트보다 빠르다.  왜냐하면 벡터가 연속된 메모리를 사용하고, 또 operator[]를 사용하여 일정한 시간에 액세스할 수 있기 때문이다. 반면에 리스트는 노드들이 일련의 연결로 구성되어 있으며 특정 요소에 액세스하려면 리스트 전체의 처음부터 끝까지 확인해야 하기 때문입니다.

 

그렇지만, 컨테이너 중간에 요소를 삽입하거나 삭제해야 하는 경우 리스트가 일반적으로 벡터보다 빠릅니다. 이렇게 하면 반복자와 참조가 무효화되지 않습니다. 반면에 벡터를 사용하면 메모리를 재할당하고 메모리를 재할당해야 할 수 있습니다. 이럴 경우 모든 요소를 새 메모리 위치에 복사합니다. 이로 인해 리스트가 벡터보다 작업을 빠르게 진행할 수 있습니다. 그렇지만, 리스트의 각 요소는 별도의 노드로 저장되고 각 노드에는 다음 및 이전 요소에 대한 포인터가 포함되어 있으므로 리스트가 벡터보다 더 많은 메모리를 사용한다는 점에 유의해야 한다.

 

 

 

반응형