Интересует, есть ли стандартный способ сделать словарь (Dictionary) в Jass/vJass.
Для поиска значения по ключу приходится пробегаться по массивам. А hashtable двумерный, да и говорят, что медленный достаточно.
Или есть какая-нибудь кастомная реализация?

Принятый ответ

хештебл будет быстрее любой твоей реализации
единственное место, где хт уступает массиву - при сравнении LoadInt с чтением из статического адреса Array[32]
Во всех остальных случаях дешевле сразу использовать хт
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
23
5 лет назад
2
в массив заноси имя а счетчик увеличивать. при поиске ишем порядок и находим получаем номер индекса и запрашиваем другой массив и получаем тот значение...
что вы так боитесь? У мя проект использует 1 хеш таблицу на все игры героя юнит скилы и так далее.
0
29
5 лет назад
0
Напиши свою реализацию. Сделать простейшую хешмапу дело 50 строк.
0
5
5 лет назад
0
pro100master, сейчас так и делаю с массивами, но не очень удобно иметь 2 штуки :)
В основном, хотел узнать, есть ли нормальная реализация, чтобы не делать велосипед. Если нет - так и буду выбирать между двумя вариантами.
Doc, а какие способы есть? Вижу только вариант, где используется hashtable, но за второй индекс всегда 0 берётся.
2
16
5 лет назад
2
хештебл будет быстрее любой твоей реализации
единственное место, где хт уступает массиву - при сравнении LoadInt с чтением из статического адреса Array[32]
Во всех остальных случаях дешевле сразу использовать хт
Принятый ответ
2
29
5 лет назад
2
Хешмапы не на магии работают же. Разбиваешь массив на бакеты, пишешь хеш функцию, кладешь значение в бакет.
0
5
5 лет назад
0
Всем спасибо за ответы, этой информации достаточно :)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.