Junior — Middle
Capacity Array ma'lumotlar tuzilmasi qanday amalga oshirilganligini va u qanday qilib xotirada o'z hajmini boshqarishini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Capacity Array — это структура данных, которая управляет массивом с выделенной емкостью памяти, позволяя эффективно добавлять элементы без частого перераспределения.
Как это работает:
- Изначально выделяется массив с некоторой емкостью (capacity).
- При добавлении элементов, если текущий размер (count) меньше емкости, элемент просто добавляется.
- Если размер достигает емкости, емкость увеличивается (обычно в 2 раза), выделяется новый массив большего размера, и данные копируются туда.
Такой подход снижает количество операций выделения памяти и копирования, улучшая производительность при динамическом росте массива.
Пример на Swift:
var array = [Int]()
array.reserveCapacity(10) // выделяем емкость под 10 элементов
for i in 1...15 {
array.append(i) // при достижении 10 элементов емкость увеличится автоматически
}
Здесь reserveCapacity задает начальную емкость, а при добавлении элементов емкость автоматически расширяется.