Array
Closed this issue · 0 comments
Taehyeon-Kim commented
Array의 Capacity
Swift의 모든 Array는 데이터를 저장할 수 있는 특정 양의 메모리를 예약한다.
https://ahyeonlog.tistory.com/48
- 예약한다라는 말이 흥미로운데, insert, append 등과 같은 operation이 동작할 때 추가적인 메모리 공간이 필요하기 때문에 미리 공간을 어느 정도 잡아놓는 것이다.
- Array에는 capacity라는 용량이 존재한다.
- Array에 Element를 추가하면서 예약된 용량을 초과하기 시작하면 Array는 더 큰 메모리 영역을 할당하고 가지고 있는 요소를 새 메모리에 복사하게 된다. (새 메모리에 복사하는 작업은 O(N)의 시간 복잡도를 가진다.
- 새 메모리의 크기는 이전 메모리의 크기의 배수이다. 이를
Array Doubling
이라고 부른다.