172 похожих чатов

Добрый день. У HashSet/HashMap есть дополнительные параметры для указания хэшера. По

умолчанию это RandomState. Последовательность элементов в коллекции с таким хешером непредсказуема. Поскольку я использую эти коллекции для генерации кода внутри процедурного макроса, мне нужно, чтобы результат вывода был предсказуемый. Можно ли чем-то заменить RandomState?

10 ответов

6 просмотров

fnvhash можно попробовать. Или xxhash - там есть seed, который можно сделать постоянным. В принципе, любой другой хеш без начальной рандомизации.

Ilya-Lakhin Автор вопроса
Ilya-Lakhin Автор вопроса
hmm
HashMap::with_hasher(...)

А что туда передать-то? )

Да возьмите BTreeSet, если порядок так уж нужен. :)

Ilya-Lakhin Автор вопроса
Artem
Да возьмите BTreeSet, если порядок так уж нужен. :...

Ладно, я пожалуй оставлю как есть, в конце только перед выводом отсортирую

Ilya Lakhin
А что туда передать-то? )

https://doc.rust-lang.org/src/std/collections/hash/map.rs.html#2964-2971 Я так понимаю, что можно написать свою реализацию со своим сидом

Не используй только лишь хэшмапу, если важен порядок - используй вдовесок слотмапу какую-нибудь (чтобы индексы вместо значений хранить)

Ilya-Lakhin Автор вопроса
Traveller Kolsky
Не используй только лишь хэшмапу, если важен поряд...

Ну, иногда я и слотмапу использую, но чем плохо использовать хэшмапу для итерирования?

Похоже, можно использовать rbtree для хранение элементов упорядоченно

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
How to create an OS in C? what to study?
Linus
18
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта