Хеш-библиотеки для программистов на C

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

Содержание
  1. uthash
  2. Judy
  3. SGLIB

uthash

Разработанная Троем Д. Хансоном, любая структура C может быть сохранена в хеш-таблице с помощью uthash. Просто включите #include “uthash.h”, затем добавьте UT_hash_handle в структуру и выберите одно или несколько полей в своей структуре, которые будут действовать в качестве ключа. Затем используйте HASH_ADD_INT, HASH_FIND_INT и макросы для хранения, извлечения или удаления элементов из хеш-таблицы. В нем используются ключи типа int, string и двоичные.

Judy

Judy – это библиотека C, которая реализует разреженный динамический массив. Массивы Judy объявляются просто с нулевым указателем и потребляют память только при заполнении. При желании они могут увеличиваться до использования всей доступной памяти. Ключевые преимущества Джуди – масштабируемость, высокая производительность и эффективность использования памяти. Его можно использовать для массивов динамического размера, ассоциативных массивов или простого в использовании интерфейса, который не требует переделки для расширения или сжатия и может заменять многие общие структуры данных, такие как массивы, разреженные массивы, хеш-таблицы, B-деревья, двоичные деревья, линейные списки, списки, другие алгоритмы сортировки и поиска, а также функции подсчета.

SGLIB

SGLIB – это сокращение от Simple Универсальная библиотека и состоит из одного файла заголовка sglib.h, который обеспечивает общую реализацию наиболее распространенных алгоритмов для массивов, списков, отсортированных списков и красно-черных деревьев. Библиотека является универсальной и не определяет собственных структур данных. Скорее он действует на существующие пользовательские структуры данных через общий интерфейс. Он также не выделяет и не освобождает память и не зависит от какого-либо конкретного управления памятью.

Все алгоритмы реализованы в виде макросов, параметризованных типом структура данных и функция компаратора (или макрос компаратора). Для некоторых алгоритмов и структур данных может потребоваться несколько дополнительных общих параметров, таких как имя поля ‘next’ для связанных списков.

Оцените статью
recture.ru
Добавить комментарий