Назад к вопросам
Simbirsoft
Junior — Middle
91
Можете объяснить, как реализована структура данных Capacity Array и как она управляет своей емкостью в памяти?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Capacity Array — это структура данных, которая управляет массивом с выделенной емкостью памяти, позволяя эффективно добавлять элементы без частого перераспределения.
Как это работает:
- Изначально выделяется массив с некоторой емкостью (capacity).
- При добавлении элементов, если текущий размер (count) меньше емкости, элемент просто добавляется.
- Если размер достигает емкости, емкость увеличивается (обычно в 2 раза), выделяется новый массив большего размера, и данные копируются туда.
Такой подход снижает количество операций выделения памяти и копирования, улучшая производительность при динамическом росте массива.
Пример на Swift:
var array = [Int]()
array.reserveCapacity(10) // выделяем емкость под 10 элементов
for i in 1...15 {
array.append(i) // при достижении 10 элементов емкость увеличится автоматически
}
Здесь reserveCapacity задает начальную емкость, а при добавлении элементов емкость автоматически расширяется.