![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как нетопорно удалить элемент <b>динамического массива</b> [D6, Win95/98, NT4, Win2k]
garyboy © (2002-10-12 18:37:00)Как не топорным способом удалить элемент динамического массива
Топорный т.е. сместить часть массива ,справа от него лежащую , на его место Вроде не топорно объяснил:) Буду очень благодарен , если кто подскажет и пришлет еще какие нибудь интересные сведения о работе с Динамическими массивами
Anatoly Podgoretsky (2002-10-12 23:41:00) [1]Как ни крути ничего не топорно для протяженных объектов не придумано, только смещение и отрубание
Юрий Зотов (2002-10-12 23:38:00) [2]> Anatoly P (12.10.02 23:20)
Нарушается порядок следования элементов, что не всегда допустимо. И потом, зачем менять, если достаточно просто присвоить? Небольшая, но тоже экономия.
Anatoly P (2002-10-12 23:20:00) [3]Вспомнил - еще можно удаляемый элемент поменять местами с последним и укоротить массив на 1 (т.е. SetLength)
Юрий Зотов (2002-10-12 23:13:00) [4]MoveMemory + SetLength.
Не знаю, топорно это или нет, но укладывается в две простые строчки. И по скорости, думаю, вариант тоже не самый худший. В целом же, если сравнивать по соотношению простота-эффективность, то не исключено, что даже лучший.
Anatoly P (2002-10-12 19:07:00) [5]Хотел бы узнать, но пока пользуюсь именно этим способом.
Anatoly Podgoretsky (2002-10-12 19:02:00) [6]Предложи, тот который, не топорный по твоему мнению
Anatoly P (2002-10-12 18:55:00) [7]Он это назвал топорным способом
Anatoly Podgoretsky (2002-10-12 18:54:00) [8]Для удаления чего либо из середины протяженных объектов, используется следующий метод, сначала хвост смещается в позицию удалемого элемента (тов) затем хвост отрубается