172 похожих чатов

Всем привет, только изучаю swift, пришел из другого языка. Судя по

доке свифта вставка (insert(), или arr[i] = 1) в массив и append всегда О(n).

Есть ли смысл инициализировать массив с заранее заданным count и repeating и затем вставлять напрямую в индекс, или никакой разницы в производительности/расхода памяти с append нет?

5 ответов

3 просмотра

думаю если у тебя не 10 тысяч объектов то для быстродействия разницы особой не заметишь

Вот из доки: Because arrays increase their allocated capacity using an exponential strategy, appending a single element to an array is an O(1) operation when averaged over many calls to the append(_:) method. When an array has additional capacity and is not sharing its storage with another instance, appending an element is O(1). When an array needs to reallocate storage before appending or its storage is shared with another copy, appending is O(n), where n is the length of the array.

Тут же это не имеет принципиального значения, как например в C++

Есть смысл, если заранее знаешь размер массива. Append будет пересаживать массив в новый участок когда в предыдущем закончится место.

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
Уважаемые. Вопрос. Есть ПС (рязань 5600Г+4060Ти). Запускаю игры, через усб карту захвата сигнал "забираю" на ОБС, установленной на Эйр м1. Всё это добро передается на твич, в ...
UglyKoyote
8
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
How to create an OS in C? what to study?
Linus
18
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Карта сайта