![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Fantasist |
|
||||||||||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 4 Всего: 41 |
Что-то этот вопрос так часто задают, что я думаю пара поместить его туда.
Чтобы народ не писал такие ужастики как:
Итак, три способа создания динамических массивов: 1. Самодельный ручной.
Кому не нравятся шаблоны, могут заменить все _Tp, на какой-нибудь float(или что там больше нравится), и выкинуть строчку с template. 2. C использованием уже готовых.
Другую функциональность СArray можно добавить по вкусу. P.S. Вообще-то, наверное, лучше использовать std::vector вместо СArray (хотя это тоже вопрос ситуации) но последний первым пришел мне на ум, как более известный начинающим(мне так кажется). 3. Разряженный массив. (массив, имеющий большие, необязательно определенные, границы но в котором храниться достадочно малое количество элементов) То есть этот массив оптимизирован на использование минимального количества памяти, по сравнению со скоростью доступа к элементам. Можно, конечно, тоже самому написать целый класс, но удобнее(и скорее всего эффективнее) воспользоваться уже готовым ассоциативным массивом. Буду непоследователен, и вместо CMap использую std::map. Смысл от этого, впрочем, не меняется.
Такой массив, благодаря map, не нуждается в инициализации. Его можно использовать так:
Думаю, фантазии у всех хватит чтобы из этого сделать трехмерный массив, дополнить нужный функционал, в общем, сделать то, что удовлетворит их потребностям. P.S. Большая просьба к кому-нибудь проверить этот код и исправить ошибки, де таковые обнаружаться. Неплохо бы еще протестировать - все работать будет, но на практике могут всплыть какие-нибудь моменты. Спасибо. -------------------- Волны гасят ветер... |
||||||||||
|
|||||||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |