В общем, мне бы хотелось узнать все плюсы и все минус хеш-таблицы в сравнении с обузом массивных переменных.
Пока из минусов могу сказать то, что получается больше строк кода практически в 1.5 раз, а в системах с 0.01 таймерами это лишняя нагрузочка и минус фпс.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
3
16
7 лет назад
3
в системах с 0.01 таймерами главный минус хештаблиц и глобалок - это системы с 0.01 таймерами.
такая частота не нужна в 99% случаев, а с оставшимся 1% наверняка работают те, кто такими вопросами не задается
хеш удобнее, потому что можно ложить данных по ключу = хендлу объекта, что гарантирует его созхранность. массив удобнее ТОЛЬКО потому, что слегка быстрее. если у тебя просадки фпс суровые - можешь попробовать массивы. если нет - используй хеш и будь счастлив.
ну а если ты работаешь в редакторе, есть какие-то структуры в псевдоязыке vjass, которые имитируют ту же хештаблицу на обычных массивах
0
27
7 лет назад
Отредактирован MpW
0
У обычных массивов от переменной, то там индекс не такой большой (от -8192 до 8192). Нельзя туда ни хэндлы всунуть, ни равкоды. Равкод к счастью можно заменить на тип переменную как тип юнита. А в хэш-таблицу все влезает, и норм. Обычные массивы неудобны еще тем, что там нельзя аттачить, приходится делать более сложные конструкции с пробегом цикла и проверками, чтобы найти нужный индекс. А вот в хэше можно сразу лепить аттач (по хэндлу юнита).
Различны способы хранения - (удобно когда массивов больше - удобно сделать сложную конструкцию). В более простых конструкциях этого не нужно.
xgm.guru/p/100/183113 массивы хэша
xgm.guru/p/100/183650 пробовал реализовать с помощью неких констант, когда не хватало ячеек
0
16
7 лет назад
0
Steal nerves:
У обычных массивов от переменной, то там индекс не такой большой (от -8192 до 8192).
вообще-то отрицательных индексов у массивов нет, 0..8191
1
32
7 лет назад
1
Steal nerves:
У обычных массивов от переменной, то там индекс не такой большой (от -8192 до 8192). Нельзя туда ни хэндлы всунуть, ни равкоды. Равкод к счастью можно заменить на тип переменную как тип юнита. А в хэш-таблицу все влезает, и норм. Обычные массивы неудобны еще тем, что там нельзя аттачить, приходится делать более сложные конструкции с пробегом цикла и проверками, чтобы найти нужный индекс. А вот в хэше можно сразу лепить аттач (по хэндлу юнита).
Различны способы хранения - (удобно когда массивов больше - удобно сделать сложную конструкцию). В более простых конструкциях этого не нужно.
xgm.guru/p/100/183113 массивы хэша
xgm.guru/p/100/183650 пробовал реализовать с помощью неких констант, когда не хватало ячеек
А и ненужно в массивы засовывать хендлы, структуры vjass'a чуть чуть побыстрее, ну и малость удобнее в написании, писанины чуть меньше, если ты работаешь с тучей данных а не 3-5 переменных типа кастер, урон, расстояние...
Есть системы без хештаблицы, но они не такие уж универсальные, и нужны реально в редких случаях, но можно юзать для тех же спеллов, пример такой системы Xattach (гугл в помощь), там целлая группа массивов.
0
20
7 лет назад
0
массив удобнее ТОЛЬКО потому, что слегка быстрее
При использовании БД на массивах прозрачны действия движка(как реализован интерфейс работы с хт - одним близзам известно). Сразу ясно какой из вариантов реализации эффективнее
0
16
7 лет назад
0
Diaboliko:
массив удобнее ТОЛЬКО потому, что слегка быстрее
При использовании БД на массивах прозрачны действия движка(как реализован интерфейс работы с хт - одним близзам известно). Сразу ясно какой из вариантов реализации эффективнее
?? обычное дерево. что конкретно тебя смущает-то? неважно, что под капотом, если оно работает без ошибок
0
32
7 лет назад
0
DracoL1ch, Просто бытует мнение что у хт не пофикшена коллизия, но так доказательств этому нету....
0
30
7 лет назад
0
Да там StringHash( ) жрёт больше, чем все перезаписывания в массивах вместе взятые (кстати, на память не влияет значение переменной, влияет только факт её проинициализированности). Короче, юзайте структуры (и читайте русский мануал по ним), это удобнее хранения данных в хэше или массиве, и по факту является работой с массивами напрямую. И быстро, и удобно.
0
26
7 лет назад
Отредактирован Extremator
0
Clamp, что есть "проинициализированность переменной" ? х)
Clamp, чем отличаются структуры (которые есть только на момент их написания, но их попросту не существует в скрипте) от массивов (которые просто есть и точка)?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.