доке свифта вставка (insert(), или arr[i] = 1) в массив и append всегда О(n).
Есть ли смысл инициализировать массив с заранее заданным count и repeating и затем вставлять напрямую в индекс, или никакой разницы в производительности/расхода памяти с append нет?
думаю если у тебя не 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 будет пересаживать массив в новый участок когда в предыдущем закончится место.
Да, это как Vector в C++ 🫠
Обсуждают сегодня