|
27.08.2010, 20:04
|
#1
|
Нуждающийся
Регистрация: 11.07.2010
Сообщений: 61
Написано 3 полезных сообщений (для 3 пользователей)
|
удалить ячейку в массиве
допустим, есть одномерный массив (mas: array [0..9] of ...)
есть ли какая-нибудь функция для удаления одного элемента массива, чтобы все элементы, находящиеся "выше" удаленного, как бы опустились на единичку, ну вобщем заполнили пустое место
я знаю что можно циклом, но по-моему где давно что-то подобное находил, может кто тоже видел????
|
(Offline)
|
|
27.08.2010, 22:50
|
#2
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: удалить ячейку в массиве
проде как нельзя изменять размер масива. используй листы и иже с ними, где можно удалять по одному элементу
|
(Offline)
|
|
28.08.2010, 01:43
|
#3
|
Дэвелопер
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений (для 1,985 пользователей)
|
Ответ: удалить ячейку в массиве
смешаешь, удаляешь
/где-то в начале кода...
type arr:array of int;
var mas:arr;
...
begin
mas.SetLength(9)
...
/А тут очищаем
Procedure RemoveElement(dim:arr, pos:int)
var i:byte;
For i:=pos to dim.Length()-1/Точно не помню как получить последний
dim[pos]=dim[pos+1]
Next/Лол, я забыл как закрывать в паскале цикл For
dim.SetLength(dim.Length()-1)
End Procedure/фак, надо повторить язык
Возможно что работать не будет, не исключен вариант что при SetLength массив очищается, но это не проблема. На время SetLength можно перенести данные в другой массив.
Ты кодер - ты и мучайся)
|
(Offline)
|
|
28.08.2010, 11:51
|
#4
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: удалить ячейку в массиве
Den, да пздц.
тогда лучше уж std::list.
а вообще я бы советовал (если место критично к скорости выполнения) если известен максимальный размер массива, элементы редко вставляются или удаляются, но часто используются. Например это юниты в стратегии - то выделять сразу массив максимального размера, а потом делать как Рекс сказал, но безо всяких этих манипуляций с сетленгхт.
|
(Offline)
|
|
30.08.2010, 18:21
|
#5
|
Оператор ЭВМ
Регистрация: 10.07.2009
Сообщений: 41
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: удалить ячейку в массиве
Сообщение от WhiteBlack
допустим, есть одномерный массив (mas: array [0..9] of ...)
есть ли какая-нибудь функция для удаления одного элемента массива, чтобы все элементы, находящиеся "выше" удаленного, как бы опустились на единичку, ну вобщем заполнили пустое место
я знаю что можно циклом, но по-моему где давно что-то подобное находил, может кто тоже видел????
|
А чем вас цикл не устраивает, организовывал именно таким образом. И все прекрасно работало.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:10.
|