STL Vector와 List의 차이점

(1) 메모리 할당

- Vector는 미리 일정크기의 메모리를 할당해놓고, 그 이상의 값이 추가되면 새로운 더 큰메모리를 할당

- Vector는 Push Back을 할 경우 매번 할당하지 않아도 되지만, 중간에 추가하는 경우 배열을 재구성해야함으로 이 경우 List보다 속도가 느리다.

- List는 값을 넣을 때마다 메모리를 할당한다.

- Push Back을 할 경우 매 번 할당을 해줘야 함으로 Push Back의 경우 Vector보다 속도가 느리다.

 

(2) 메모리 해제

- Vector의 경우 값을 삭제하더라도 메모리 해제를 하지 않고, Clear를 하게 될 경우에도 메모리는 그대로 남게된다.

- List의 경우 변수가 해제 될때마다 메모리에서 해제하게 된다.

- popback의 경우 vector가 훨씬 빠르지만, 중간에 삭제하게 되면 메모리 할당과 마찬가지로 List가 빠르다.

 

(3) 메모리 사용량

- Vector의 경우 연속적인 주소에 할당되므로 list처럼 next의 주소등 다른 변수를 가지고 있을 필요없기 때문에 list보다 적은 메모리를 가진다. 

'프로그래밍 > C & C++' 카테고리의 다른 글

Smart Pointer  (0) 2020.04.22
Virtual Function  (0) 2020.04.21
Dangling Pointer(허상 포인터)  (0) 2020.04.17
Vector 컨테이너  (0) 2020.04.09
정적(static)&공유(shared) 라이브러리  (0) 2020.03.25
더보기

댓글,

야미야미얌얌

프로그래밍 및 IT 기술