Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
Вниздинамический массив Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c