Страница 1 из 3
Динамические списки записей

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

Добавлено:
21.08.2020 13:40:35
Снег Север
TList, TobjectList, TClassList...
Re: Динамические списки записей

Добавлено:
21.08.2020 14:44:56
GAMER
А как держать записи в них? Записи разной природы (типа).
Добавлено спустя 1 час 32 минуты 1 секунду:
Почитал о TList. Буду пробовать
Re: Динамические списки записей

Добавлено:
21.08.2020 18:31:55
Снег Север
К записи можно прицепить любой объект. TobjectList может автоматически удалять объекты при удалении записи (если свойство OwnsObjects True, обычно стоит по дефолту).
Re: Динамические списки записей

Добавлено:
22.08.2020 09:19:31
olegy123
Re: Динамические списки записей

Добавлено:
22.08.2020 15:38:39
iskander
GAMER писал(а):А как держать записи в них? Записи разной природы (типа).
Если речь про гетерогенные списки, то есть встроенный тип Variant.
Снег Север писал(а):TList, TobjectList, TClassList...
К сожалению всё перечисленное не обеспечивает вставку/удаление элементов в середину списка за постоянное время.
Re: Динамические списки записей

Добавлено:
22.08.2020 21:35:23
Снег Север
iskander писал(а):К сожалению всё перечисленное не обеспечивает вставку/удаление элементов в середину списка за постоянное время.
И что с того?
Re: Динамические списки записей

Добавлено:
22.08.2020 22:01:01
iskander
Снег Север писал(а):И что с того?
Кому?
Re: Динамические списки записей

Добавлено:
23.08.2020 06:23:35
olegy123
iskander писал(а):К сожалению всё перечисленное не обеспечивает вставку/удаление элементов в середину списка за постоянное время.
TFPList <> TList
TFPList как раз использует механизм связаных цепочек, элемент указывает на следующий элемент, против TList, где используется массив.
скорость вставки в любом месте не должна быть разной.
говорят есть дженерик TFPGList
Re: Динамические списки записей

Добавлено:
23.08.2020 13:33:34
iskander
Все упомянутые контейнеры (в том числе TFPGList) конечно же построены на основе массива.
Впрочем, это всё имеет значение только если важна производительность.
Обычно важна.
Re: Динамические списки записей

Добавлено:
23.08.2020 14:32:29
zub
LinkedList есть в fcl-stl
Re: Динамические списки записей

Добавлено:
23.08.2020 15:52:30
Снег Север
iskander писал(а):Впрочем, это всё имеет значение только если важна производительность.
Обычно важна.
Если это не драйвер, игровой движок, микроконтроллер, то обычно совершенно не важна.
Re: Динамические списки записей

Добавлено:
23.08.2020 16:54:47
iskander
zub писал(а):LinkedList есть в fcl-stl
А как у него дела с доступом по индексу?
Снег Север писал(а):Если это не драйвер, игровой движок, микроконтроллер, то обычно совершенно не важна.
"Счастливые часов не наблюдают"(c)?
Re: Динамические списки записей

Добавлено:
23.08.2020 17:03:13
Снег Север
iskander писал(а):"Счастливые часов не наблюдают"(c)?
Умные расставляют правильные приоритеты. Лично я за 30 лет вообще еще не встречал программ, для которых (если это не из приведенного мной выше перечня) скорость работы любого list'а была существенной.
Re: Динамические списки записей

Добавлено:
23.08.2020 17:07:30
iskander
Ну так и я о том же.
Полагаю ДатаБазаМордоСтроение?