Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.007 c
1-91325
saska
2003-04-15 15:30
2003.04.28
Убить TStringlist


6-91435
Gimer
2003-03-05 17:11
2003.04.28
Как из WebBrowser скопировать (программно) текст в буфер обмена?


1-91336
sergio
2003-04-15 17:18
2003.04.28
общие вопросы


14-91529
BJValentine
2003-04-10 10:39
2003.04.28
Глюки программера


4-91586
}{enon
2003-03-01 16:18
2003.04.28
Проблемы с хуком





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский