Динамические списки записей

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Динамические списки записей

Сообщение GAMER » 21.08.2020 12:54:46

Есть необходимость держать массив/списки/что-либо для записей. Полями записей являются строки, датавремя, указатели на MySQL-соединения.
В списке нужно добавлять и удалять записи, которые могут быть в середине, а не в конце списка.
Есть современные решения или делатть классически а-ля стеки, в которых елементом записи является указатель на следующий елемент?

или использовать динамический массив, в котором последний елемент пишеться на место удаляемого, а размер массива уменьшаеться на 1?
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Динамические списки записей

Сообщение Снег Север » 21.08.2020 13:40:35

TList, TobjectList, TClassList...
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: Динамические списки записей

Сообщение GAMER » 21.08.2020 14:44:56

А как держать записи в них? Записи разной природы (типа).

Добавлено спустя 1 час 32 минуты 1 секунду:
Почитал о TList. Буду пробовать
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Динамические списки записей

Сообщение Снег Север » 21.08.2020 18:31:55

К записи можно прицепить любой объект. TobjectList может автоматически удалять объекты при удалении записи (если свойство OwnsObjects True, обычно стоит по дефолту).
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: Динамические списки записей

Сообщение olegy123 » 22.08.2020 09:19:31

olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: Динамические списки записей

Сообщение iskander » 22.08.2020 15:38:39

GAMER писал(а):А как держать записи в них? Записи разной природы (типа).

Если речь про гетерогенные списки, то есть встроенный тип Variant.

Снег Север писал(а):TList, TobjectList, TClassList...

К сожалению всё перечисленное не обеспечивает вставку/удаление элементов в середину списка за постоянное время.
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: Динамические списки записей

Сообщение Снег Север » 22.08.2020 21:35:23

iskander писал(а):К сожалению всё перечисленное не обеспечивает вставку/удаление элементов в середину списка за постоянное время.

И что с того?
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: Динамические списки записей

Сообщение iskander » 22.08.2020 22:01:01

Снег Север писал(а):И что с того?

Кому?
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: Динамические списки записей

Сообщение olegy123 » 23.08.2020 06:23:35

iskander писал(а):К сожалению всё перечисленное не обеспечивает вставку/удаление элементов в середину списка за постоянное время.

TFPList <> TList
TFPList как раз использует механизм связаных цепочек, элемент указывает на следующий элемент, против TList, где используется массив.
скорость вставки в любом месте не должна быть разной.

говорят есть дженерик TFPGList
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: Динамические списки записей

Сообщение iskander » 23.08.2020 13:33:34

Все упомянутые контейнеры (в том числе TFPGList) конечно же построены на основе массива.
Впрочем, это всё имеет значение только если важна производительность.
Обычно важна.
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: Динамические списки записей

Сообщение zub » 23.08.2020 14:32:29

LinkedList есть в fcl-stl
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Динамические списки записей

Сообщение Снег Север » 23.08.2020 15:52:30

iskander писал(а):Впрочем, это всё имеет значение только если важна производительность.
Обычно важна.

Если это не драйвер, игровой движок, микроконтроллер, то обычно совершенно не важна.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: Динамические списки записей

Сообщение iskander » 23.08.2020 16:54:47

zub писал(а):LinkedList есть в fcl-stl

А как у него дела с доступом по индексу?

Снег Север писал(а):Если это не драйвер, игровой движок, микроконтроллер, то обычно совершенно не важна.

"Счастливые часов не наблюдают"(c)?
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: Динамические списки записей

Сообщение Снег Север » 23.08.2020 17:03:13

iskander писал(а):"Счастливые часов не наблюдают"(c)?

Умные расставляют правильные приоритеты. Лично я за 30 лет вообще еще не встречал программ, для которых (если это не из приведенного мной выше перечня) скорость работы любого list'а была существенной.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: Динамические списки записей

Сообщение iskander » 23.08.2020 17:07:30

Ну так и я о том же.
Полагаю ДатаБазаМордоСтроение?
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

Рейтинг@Mail.ru