|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.09.2013, 15:24 | #1 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
распределение массива
Здравствуйте.
Есть общая структура для хранения информации о всех объектах, скажем data, в ней содержатся разные переменные и т.п. Необходимо поделить использование структуры на 4 разных группы (предметы, персонажи, и т.п.). Здесь и вопрос, как лучше это сделать? Использовать один массив, с обращением к его областям через указатели, или массив под каждую группу? data dat[1000]; data *p1 = dat[0]; data *p2 = dat[250]; data *p3 = dat[500]; data *p4 = dat[750]; или data dat1[250]; data dat2[250]; data dat3[250]; data dat4[250]; С точки зрения целесообразности и производительности, какой вариант для компьютера лучше? Ибо, в плане удобства, в обоих вариантах создается отдельное средство управления (указатель, или персональный массив). |
16.09.2013, 16:10 | #2 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
Код:
|
16.09.2013, 21:32 | #3 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
&dat[0];
вопрос в силе |
16.09.2013, 21:40 | #4 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
Ну мне кажется что более экономичный 2 вариант. Просто указатель тоже занимает память и получается:
В первом варианте занимаемая память: sizeof(p1) * 4 + 1000 * sizeof(data) А во втором: (sizeof(data) * 250) * 4 = sizeof(data) * 1000 Вроде так.
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
16.09.2013, 21:46 | #5 |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
Можно ещё чуток поднапрячься и реализовать иерархическую базу данных в виде структуры:
Код:
do not use your brain
|
16.09.2013, 22:41 | #6 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
массив под каждую группу
|
16.09.2013, 23:42 | #7 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
Код:
Во втором просто массивы, т.е затрат меньше. |
16.09.2013, 23:59 | #8 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Первый вариант для этого становится избыточным. |
|
17.09.2013, 10:11 | #9 |
Форумчанин
Регистрация: 11.01.2013
Сообщений: 149
|
Про какие затраты памяти тут идет речь, даже если взять 1 случай:
Код:
Код:
Может это и чушь, но это моя чушь и я ее никому не отдам.
Последний раз редактировалось Shad0wF1rst; 17.09.2013 в 10:32. |
17.09.2013, 10:42 | #10 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Благодарю всех, кто подключился к обсуждению Вообще можно сказать, при современных вычислительных скоростях, рассуждение что будет проще, может показаться пустяком, но тут дело интереса и принципа.
На самом деле, интересует вопрос процессорного времени, то, как компьютеру будет проще. Я смотрю предложили вариант "иерархической базы", интересно, первый раз такое вижу. Т.е. предлагается вместо обращения к структурам массива в цикле, по очереди (1 2 3 4 5), будет браться прямой адрес следующей структуры, из текущей? Это интересно, ибо обращение к элементам массива будет проводиться в цикле десятки раз в секунду (проверка объектов, их координат, столкновений, проверка флагов, эвентов и т.п.). Таким образом, если думать о таком варианте, здесь логичнее цельный массив (1000), с указателями. Целесообразно ли использовать иерархическую структуру? Намного ли разница в производительности? Если десятки раз в секунду, в цикле, будут прокручиваться 500-1000 элементов? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Гауссово распределение, С# | alik98 | Помощь студентам | 0 | 24.02.2013 17:37 |
распределение по матрице | mazak | Общие вопросы C/C++ | 0 | 19.08.2012 11:49 |
Распределение в памяти в СИ | marsh123 | Общие вопросы C/C++ | 1 | 17.11.2011 16:35 |
Экспоненциальное распределение на C++ | RayGGG | Фриланс | 1 | 28.02.2011 14:39 |
Экспоненциальное распределение на C++ | RayGGG | Помощь студентам | 0 | 25.02.2011 18:13 |