2013-04-05 3 views
9

Кто-нибудь знает о хэш-таблице/реализации C/C++ хеш-таблицы, что не динамически выделяет память? Я работаю над встроенной системой, у которой нет стандартной библиотеки & без кучи (если я не хочу писать/переносить один).Хэш-таблица/реализация карты без динамических распределений

+0

Не было бы проще найти реализацию распределения кучи для встроенных, чем хеш-карту без распределения динамической памяти? – dtech

+0

Если вы всегда можете освободить выделенную память в точно противоположном порядке ее распределения (например, 'alloc a, b, c',' free c, b, a'), ваш менеджер памяти/кучи может быть таким простым, как несколько десяток строк кода, реализующих структуру данных стека. –

+0

Это _might_ будет проще реализовать кучу, но если это единственное, что мне нужно, это может и не быть. И хранилище памяти стека означает, что я не смогу удалить элементы из строя, что может быть проблемой. –

ответ

6

Термины, которые вы ищете, - это «Открытая адресация» или «Закрытое хеширование». См http://en.wikibooks.org/wiki/Data_Structures/Hash_Tables#Open_addressing и http://en.wikipedia.org/wiki/Open_addressing

Не знаю конкретную реализацию, хотя. Сожалею.

+0

Хорошие ссылки, хотя они могут пригодиться. –

+0

На самом деле красивые картинки в этой статье заставили меня понять, что я мог бы также сделать цепочку, если бы я внедрил freelist из магазина узлов (вероятно, только статический массив). Но мне нравится когерентность кеширования с открытым доступом. –

Смежные вопросы