Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.09;
Скачать: CL | DM;

Вниз

Дин. массивы.   Найти похожие ветки 

 
Ш-К   (2004-02-26 13:51) [0]

Как удалить элемент из динамического массива?
Строить временный массив, заполнять его в цикле, а потом присваивать исходному? Или есть другие методы?


 
Тимохов ©   (2004-02-26 13:55) [1]

например, нужно удалить элемент i
меремещаем i+1 на место i, i+2 на место i+1, и т.д.
уменьшаем на единицу длину массива.

Если очень нужна скорость можно через move это сделать.


 
Erik ©   (2004-02-26 15:06) [2]

Только осторожно, особенно если у тебя в масиве находятся строки. А если длиные строки, то Move тебе непоможет.


 
Тимохов ©   (2004-02-26 15:13) [3]

поможет move+finalize+fillchar.


 
Ш-К   (2004-02-26 15:51) [4]

Массивы типа integer. Вставку/удаление сделал через циклы и временный массив.


 
wisekaa ©   (2004-02-26 15:55) [5]


> Массивы типа integer.

Используй лучьше TList, в какойто книге есть даже пример как вывести из TList -> TIntegerList. В работе будет гораздо удобнее.


 
PVOzerski ©   (2004-02-26 16:03) [6]

Здесь в принципе возможно 2 подхода (остальное - варианты реализации): либо делать много переприсвений (сдвиг), либо работать через связные списки. Во 2-м случае мы платим 4-8 байтами за каждый элемент и невозможностью быстро, по индексу, добраться до интересующего элемента. Зато выбросить или вставить элемент можно, не трогая большинство других и не выделяя временные блоки памяти. Есть еще один вариант: обозначать ненужные элементы каким-нибудь флагом и игнорировать их, скажем, при работе цикла.


 
Serginio666   (2004-02-26 16:33) [7]

Move


 
Тимохов ©   (2004-02-26 16:39) [8]


> wisekaa © (26.02.04 15:55) [5]

Для критичных по времени операций дин массивы лучше, если в них использовать тот же подход, что и в TList, т.е. Count+Capacity.
Это объясняется тем, что для доступа к элементам не нужен вызов метода. А выделение памяти в обоих случаях делается через штатных менеджер памяти.
Если же время не критично, то с вами полностью согласен - TList, это хорошо.


 
wisekaa ©   (2004-02-26 16:45) [9]


> [8] Тимохов © (26.02.04 16:39)

С этим я согласен полностью



Страницы: 1 вся ветка

Текущий архив: 2004.03.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
3-25706
User_OKA
2004-02-09 10:30
2004.03.09
FibDataSet


3-25694
StasN
2004-02-09 18:29
2004.03.09
Поможите люди добрые SQL запрос составить!


1-25808
LAMER-XP
2004-02-25 23:26
2004.03.09
Всех с праздником! м вопросик заодно


14-25928
Домарощинер
2004-02-14 15:17
2004.03.09
Непонятные куки


3-25689
Alexei Sviridov
2004-02-11 10:56
2004.03.09
SQL запрос