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

Вниз

динамический массив   Найти похожие ветки 

 
Neox ©   (2003-04-14 16:03) [0]

существуют ли какие-то особые методы или функции для удаления не крайних элементов динамического массива (а также и вставки в середину массива)? или придется все же по-тупому делать так?:

var
i, k: integer;
ar1, ar2: array of integer;
begin
SetLength(ar1, 5);
ar1[0]:=1;ar1[1]:=2;ar1[2]:=3;ar1[3]:=4;ar1[4]:=5;
SetLength(ar2, 5);

k:=2; //абсол. индекс удаляемого элемента

for i:=0 to k-1 do
ar2[i] := ar1[i];

for i:=k to High(ar1)-1 do
ar2[i] := ar1[i+1];

SetLength(ar2, 4);
end;


 
MBo ©   (2003-04-14 16:08) [1]

Move можно использовать


 
LEON   (2003-04-14 23:02) [2]

Delete(Ar, Length(Ar) - количество элементов, количество элементов)


 
Demon_MHM ©   (2003-04-14 23:12) [3]

Можно еще проще:
ar1[<индекс удал. эл-та>] := ar1[High(Ar1)];
SetLength(Ar1, High(Ar1));

Вроде так, если ничего не напутал...
Короче, берешь последний эл-т, кидаешь его значение на место удаляемого, а потом устанавливаешь длину массива меньше на единицу.


 
Palladin ©   (2003-04-15 00:02) [4]


> Demon_MHM © (14.04.03 23:12)

ну это если последовательность элементов сохранять не надо...


 
Palladin ©   (2003-04-15 00:09) [5]


> LEON (14.04.03 23:02)

вообщето это процедура только для string если ты внимательно справку читал, процедура отработает если только размер элемента массива в один байт

var
r:array of byte;

delete(string(r),2,1);


 
Demon_MHM ©   (2003-04-15 10:10) [6]

>Palladin © (15.04.03 00:02)
Ну, так все равно рано или поздно они сортируются :) Остается посчитать что выгоднее, заново отсортировать масив, или двигать его в другой, особенно если они большие. А один элемент можно пузырьком быстренько на место двинуть :)


 
evvcom ©   (2003-04-15 10:17) [7]

Сортировка делается гораздо дольше чем Move


 
Palladin ©   (2003-04-15 10:37) [8]

Я не имел ввиду сортированый массив, я имел ввиду последовательный массив.


 
Neox ©   (2003-04-15 15:54) [9]

да, у меня массив не сортируется в последствии, и важно сохранить его последовательность, т.е. надо сдвигать все элементы, а не переставлять последний.


 
Anatoly Podgoretsky ©   (2003-04-15 16:02) [10]

Move для одномерных массивов (для двухмерынх если удаляется вся строка, учитывая, что это указатели, а не значения).



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

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

Наверх




Память: 0.49 MB
Время: 0.024 c
6-91442
-=]D@VINCHI[=-
2003-03-05 12:16
2003.04.28
Сетевое окружение


3-91221
Jao
2003-04-10 08:45
2003.04.28
День добрый. Комментарии в SQL-запросе при конекте через ADO


6-91432
VIB
2003-03-05 15:33
2003.04.28
HTML


3-91184
aleksey_sv
2003-04-09 18:04
2003.04.28
Локальная база в сети


1-91256
Laxer
2003-04-14 15:25
2003.04.28
Определение дня недели