Форум: "Основная";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
ВнизКак склеить динамические массивы ? Как вырекзать элемнт из него ? Найти похожие ветки
← →
Cheburek (2004-11-10 15:25) [0]Очередная проблема, господа.
Как склеить два динамических массива ?
Или удалить элемент из массива?
Надо что бы всё было аккуратно и быстро.
← →
Amoeba © (2004-11-10 15:45) [1]А если все-таки хорошо подумать собственной головой? Задача ведь элементарная.
← →
ghg © (2004-11-10 16:13) [2]одно из двух
либо аккуратно, либо быстро
а в общем случае тока поэлементно
← →
Torin (2004-11-10 16:39) [3]Приклеить Массив_2 в конец Массив_1
SetLength(Массив_1,Размер_Массива_1 + Размер_Массива_2);
for i := Размер_Массива_1 to Размер_Массива_2 + Размер_Массива_1 - 1 do
Массив_1[i] := Массив_2[i - Размер_Массива_1];
Удалить элемент из массива:
for i := Индекс_Удаляемого_Элемента to Размер_Массива_1 - 2 do
Массив_1[i] := Массив_1[i + 1];
SetLength(Массив_1,Размер_Массива_1 - 1);
← →
Torin (2004-11-10 16:43) [4]Да ещё в первом случае Размер_Массива_1 получается до описаного участка кода хранится в некой переменной и не меняется.
← →
ghg © (2004-11-10 17:39) [5]>Torin (10.11.04 16:39) [3]
то бишь поэлементно
но это говорят не очень быстро
← →
ninja © (2004-11-10 17:57) [6]
> ghg © (10.11.04 17:39) [5]
> >Torin (10.11.04 16:39) [3]
> то бишь поэлементно
> но это говорят не очень быстро
Ну тады CopyMem наверное!
← →
ghg © (2004-11-10 18:26) [7]дык вопрос про стандартные дин.массивы
а если самому все разгребать тогда конечно CopyMem
← →
panov © (2004-11-10 18:26) [8]>ninja © (10.11.04 17:57) [6]
Ну тады CopyMem наверное!
И нет сомнений, что скопировано будет всё правильно?
← →
ninja © (2004-11-10 19:07) [9]а какие могут быть осложнения?
← →
Torin (2004-11-10 19:41) [10]Дин. массивы использовать для больших структур данных действительно довольно накладно, ведь при увеличении размера массива хотя бы на 1 весь массив переписывается на новое место :-(. Незнаю уж что там говорят, но для моих задач обычно хватало скорости поэлементной работы (правда для структур я дин. массивы не успользую тока для указателей на структуры).
← →
begin...end © (2004-11-10 19:49) [11]Torin (10.11.04 19:41) [10]
> Дин. массивы использовать для больших структур данных
> действительно довольно накладно, ведь при увеличении
> размера массива хотя бы на 1 весь массив
> переписывается на новое место :-(.
Откуда дровишки?
← →
Fay © (2004-11-10 19:53) [12]>> весь массив переписывается на новое место
Не всегда.
← →
KilkennyCat © (2004-11-10 19:56) [13]есть метод псевдосклеивания. Ничего не склеивается, просто продумывается работа с обеими массивами.
← →
SergP © (2004-11-10 20:08) [14]
> Как склеить два динамических массива ?
Сначала Setlength, затем Move
> Или удалить элемент из массива?
Сначала Move, затем Setlength
← →
lipskiy © (2004-11-10 21:01) [15]А я вместо динамических массивов стараюсь использовать TStringList! Изврат, но работает несравнимо быстрее! Даже с учетом конвертации в string и из string. И удаляй, и приклеивай, и отрезай, и сортируй, и что хош делай, и быстро. Вот так.
← →
KilkennyCat © (2004-11-10 21:12) [16]
> lipskiy © (10.11.04 21:01) [15]
думаю, это применительно к частным случаям только.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.034 c