(1) 메모리 할당
- Vector는 미리 일정크기의 메모리를 할당해놓고, 그 이상의 값이 추가되면 새로운 더 큰메모리를 할당
- Vector는 Push Back을 할 경우 매번 할당하지 않아도 되지만, 중간에 추가하는 경우 배열을 재구성해야함으로 이 경우 List보다 속도가 느리다.
- List는 값을 넣을 때마다 메모리를 할당한다.
- Push Back을 할 경우 매 번 할당을 해줘야 함으로 Push Back의 경우 Vector보다 속도가 느리다.
(2) 메모리 해제
- Vector의 경우 값을 삭제하더라도 메모리 해제를 하지 않고, Clear를 하게 될 경우에도 메모리는 그대로 남게된다.
- List의 경우 변수가 해제 될때마다 메모리에서 해제하게 된다.
- popback의 경우 vector가 훨씬 빠르지만, 중간에 삭제하게 되면 메모리 할당과 마찬가지로 List가 빠르다.
(3) 메모리 사용량
- Vector의 경우 연속적인 주소에 할당되므로 list처럼 next의 주소등 다른 변수를 가지고 있을 필요없기 때문에 list보다 적은 메모리를 가진다.
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 기술