![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: нет Всего: 22 |
Можно ли сделать массив, чтобы в него можно было добавлять элементы.
-------------------- С уважением. Gray. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
Можно не делать, а воспользоваться шаблоном вектор, или списками....
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
А можно сделать динамический массив. Только это невыгодно, т.к. при каждом добавлении элемента (читай -- росте массива) придётся выделять блок памяти под массив увеличенного размера, копировать в него все элементы из массива, уничтожать блок памяти под массив предыдущего размера; представляешь, какие затраты времени на это уйдут ?
Если же ты собрался создать свой собственный механизм заблаговременного резервирования памяти под несколько элементов, управления ростом массива и т.п., то могу тебя огорчить: в любой среде разработки под C++ умными людьми давно были написаны, отлажены и оптимизированы готовые средства по хранению данных в динамических массивах, списках, очередях, словарях и т.д. Самым "продвинутым" из них считается STL (хотя есть аналогичные средства, входящие в состав классов OWL для C++ Builder и MFC для Visual C++). В частности, динамический массив с возможностью вставки/удаления элементов, реализуется с помощью шаблона "vector". -------------------- ![]() |
|||
|
||||
| kruchinin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.4.2003 Репутация: нет Всего: нет |
можно сделать структуру, например
struct object { BYTE obj; void *p; }; здесь obj-элемент массива а p - указатель на следующий элемент при добавлении нового элеменат выделяешь память а ссылку на нее даешь на последний в списке объект и т.д. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
kruchinin, и получаем... самодельный односвязный список.
Спрашивается: зачем это, если есть контейнер "list" ? -------------------- ![]() |
|||
|
||||
| kruchinin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 100 Регистрация: 19.4.2003 Репутация: нет Всего: нет |
Не все пользуются такими средствами как контейнер list - тем более все такие средства значительно сказываются на быстродействии, т.к. поддерживают значительные возможности, а при таком простом использовании можно получить значительный выгрыш в скорости.
|
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Вопрос был именно "массив", а не связанный список, где елементы раскиданы по памяти в произвольном порядке.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |