Pull to refresh

Comments 7

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

Так реально бывает?

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

Поэтому для совместимости C89 началом данных является переменная data.

C89? Не верится, что где то существуют компиляторы не поддерживающие ничего новее

add_hash_t add_hash; add_cmp_t add_cmp; find_hash_t find_hash; find_cmp_t find_cmp; del_hash_t del_hash; del_cmp_t del_cmp;

разумеется, подобная реализация проиграет С++ реализации всегда и в любом случае

Я попробовал несколько готовых реализаций, но оказалось, что они недостаточно эффективны для моих нужд

Любой мужчина в возрасте внезапно для себя осознает, что ему уже не хватает синхронизированной хеш-таблицы...

в общем, попробуйте Хеш-таблицу с транзакциями: ее функционал и эффективность точно выше. https://ders.by/cpp/memdb/memdb.html#5.2

У вас получается таблица из строковых значений - доменов. Для таких данных структура данных бор (trie) может подходить сильно лучше, и по памяти и по скорости. Особенно, с учетом ограниченного алфавита.

кстати удаление крайнее как я понял когда 1 елемент удаляется, вобщем толи начало толи конец 128 наносекунд а там выше поменьше времени потребовалось вплоть до 38 наносекунд

там есть какаято супер крутая функция которая делает супер удобный хэш, я недавно читал как раз статью на эту тему

Заполненность в тесте регулируется общим размером хеш-таблицы, а удаление всех элементов через функцию происходит в проходе функции по всех элементам. А значит чем меньше заполненность тем по большему количеству элементов надо пройтись.

Sign up to leave a comment.

Articles