DevPrep

Все темы › Алгоритмы и структуры данных

Что такое ContiguousArray и зачем он нужен?

Senior PRO

Суть

ContiguousArray<Element> — массив, который всегда хранит элементы в одном непрерывном блоке памяти. API совпадает с Array (это тоже RandomAccessCollection, RangeReplaceableCollection, value-тип с CoW).

Отличие от Array — в хранилище. Array на Apple-платформах может быть мостом к NSArray: если массив пришёл из Objective-C (NSArray as [Model]), под капотом лежит Cocoa-буфер, и каждый доступ по индексу проходит через проверку «нативный или мостовой буфер» и вызов objectAtIndex:. ContiguousArray в NSArray не мостится, поэтому этой проверки нет.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store