Рекомендуемая структура данных в Julia для эффективного добавления

Какова идеальная структура данных, подобная списку, в Джулии?

Я хочу индексируемую, растущую коллекцию с операцией добавления времени.

Стандартная структура данных выглядит Array с помощью операции push!. Это постоянное время?

Ответ 1

Как сказал Харлан, push! является амортизированным постоянным временем. См. Описание подобной структуры данных С++ для аргументов, почему: Амортизированный анализ вставки std::vector

Если вам нужна структура данных с постоянным постоянным временем, вы, вероятно, захотите реализовать связанный список. Я видел множество примеров реализации, но ничего не готового к производству.

Ответ 2

Повторно называть push! не постоянное время, но довольно быстро. Он выполняет случайное перераспределение буфера. См. Источник C для добавления в массив: https://github.com/JuliaLang/julia/blob/master/src/array.c#L564