|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.03.2012, 17:45 | #1 |
Форумчанин
Регистрация: 28.12.2011
Сообщений: 124
|
Удаление элемента массива
Есть массив объектов:
Код:
Код:
Далее в последующей процедуре надо удалить конкретный элемент массива. Как это сделать? Так: Код:
Но тут я видимо что-то неправильно делаю. Подскажите как правильно? И второй вопрос - когда я удаляю, что же остаётся на месте удалённого элемента - NULL указатель ? Заранее спасибо!
"Думай не о задаче, а о решении" (с)
|
07.03.2012, 21:35 | #2 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
Кхм, массив - не самая подходящая структура для удаления произвольных элементов. Либо почитайте про списки, либо при удалении неплохо бы сдвигать оставшиеся элементы дабы заполнить пустое место, оставшееся после удаления.
Форматируйте код, будьте людьми.
|
07.03.2012, 21:36 | #3 |
Форумчанин
Регистрация: 09.10.2010
Сообщений: 217
|
Надо создать новый массив меньше на 1.
Потом записать туда все элементы кроме i. Освободить память из под старого. Присвоить к указателю arr адрес нового массива.
Ёж птица гордая, пока не пнешь не полетит.
|
07.03.2012, 22:04 | #4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Не правильно. Вы, не понимаете тип указателей. Динамический массив, это последовательность элементов в памяти. Можно применить итераторы, но лучше (проще(тут будут споры (но кому как нравится))) переписать созданный, во-вновь созданный.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
07.03.2012, 22:42 | #5 |
Форумчанин
Регистрация: 28.12.2011
Сообщений: 124
|
Хорошо, спасибо. Я поняла, раз нельзя, значит нельзя.
Но можно ведь и не удалять, а сделать элемент, например, "невидимым" для других элементов по средствам функций, не нарушая последовательности.
"Думай не о задаче, а о решении" (с)
|
07.03.2012, 22:47 | #6 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
Ну, Вы можете использовать какое-нибудь значение (0, например) для идентификации "пустых" ячеек массива. Или вообще завести массив булеанов для той же цели, если так уж хотите массивы
Форматируйте код, будьте людьми.
|
07.03.2012, 23:38 | #7 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
В этом случае, лучше применить структуру (гемора по-меньше будет).
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
удаление элемента из массива | Dmitry73 | Помощь студентам | 3 | 02.12.2010 09:10 |
удаление элемента массива | Studentka_iz_ZP | Общие вопросы C/C++ | 2 | 02.10.2010 13:55 |
Удаление элемента из массива | prostac | Помощь студентам | 2 | 30.09.2010 11:14 |
Удаление элемента из массива | asd874 | Помощь студентам | 3 | 13.05.2010 12:13 |
Удаление элемента массива | chiffa | Общие вопросы Delphi | 1 | 03.01.2008 19:24 |