aboutsummaryrefslogtreecommitdiff
path: root/doc/Manual/ru/BH_Hashmap.pod
diff options
context:
space:
mode:
Diffstat (limited to 'doc/Manual/ru/BH_Hashmap.pod')
-rw-r--r--doc/Manual/ru/BH_Hashmap.pod198
1 files changed, 198 insertions, 0 deletions
diff --git a/doc/Manual/ru/BH_Hashmap.pod b/doc/Manual/ru/BH_Hashmap.pod
new file mode 100644
index 0000000..30a1116
--- /dev/null
+++ b/doc/Manual/ru/BH_Hashmap.pod
@@ -0,0 +1,198 @@
+=encoding UTF-8
+
+
+=head1 НАИМЕНОВАНИЕ
+
+BH_Hashmap - неупорядочный ассоциативный массив
+
+
+=head1 СИНТАКСИС
+
+ #include <BH/Hashmap.h>
+
+ cc prog.c -o prog -lbh
+
+
+=head1 ОПИСАНИЕ
+
+Библиотека BH_Hashmap предоставляет реализацию неупорядоченного ассоциативного
+массива, основанного на хэш-таблице. Она позволяет эффективно хранить и
+извлекать данные по ключу.
+
+
+=head1 API ВЫЗОВЫ
+
+
+=head2 BH_HashmapNew
+
+ BH_Hashmap *BH_HashmapNew(BH_EqualCallback equal,
+ BH_HashCallback hash);
+
+Создаёт ассоциативный массив.
+
+Параметр I<equal> принимает указатель на функцию, которая сравнивает два
+элемента.
+
+Параметр I<hash> принимает указатель на функцию, вычисляющую хэш-значение
+элемента.
+
+В случае успеха функция возвращает указатель на новый объект BH_Hashmap или NULL
+в случае ошибки.
+
+
+=head2 BH_HashmapFree
+
+ void BH_HashmapFree(BH_Hashmap *hashmap);
+
+Уничтожает ассоциативный массив.
+
+
+=head2 BH_HashmapClear
+
+ void BH_HashmapClear(BH_Hashmap *hashmap);
+
+Очищает ассоциативный массив.
+
+
+=head2 BH_HashmapReserve
+
+ int BH_HashmapReserve(BH_Hashmap *hashmap,
+ size_t size);
+
+Резервирует место как минимум для I<size> элементов.
+
+Вызов этой функции делает существующие итераторы недействительными.
+
+В случае успеха функция возвращает 0, в случае ошибки - код ошибки.
+
+
+=head2 BH_HashmapInsert
+
+ int BH_HashmapInsert(BH_Hashmap *hashmap,
+ void *key,
+ void *value);
+
+Вставляет элемент, представленный парой ключ-значение I<key> и I<value>.
+
+Функция позволяет вставлять несколько элементов с одинаковым значением ключа.
+
+Вызов этой функции делает существующие итераторы недействительными.
+
+В случае успеха функция возвращает 0, в случае ошибки - код ошибки.
+
+
+=head2 BH_HashmapRemove
+
+ void BH_HashmapRemove(BH_Hashmap *hashmap,
+ void *key);
+
+Удаляет элемент с заданным значением ключа I<key>.
+
+Если ассоциативный массив содержит несколько элементов с одинаковым значением
+ключа, функция удалит только одну пару ключ-значение.
+
+Вызов этой функции делает существующие итераторы недействительными.
+
+
+=head2 BH_HashmapAt
+
+ int BH_HashmapAt(BH_Hashmap *hashmap,
+ void *key,
+ void **value);
+
+Проверяет наличие элемента с заданным ключом I<key>.
+
+Опциональный параметр I<value> возвращает значение элемента с заданным ключом.
+
+В случае успеха функция возвращает 0, в случае ошибки - код ошибки.
+
+
+=head2 BH_HashmapEmpty
+
+ int BH_HashmapEmpty(BH_Hashmap *hashmap);
+
+Проверяет, является ли ассоциативный массив пустым.
+
+
+=head2 BH_HashmapSize
+
+ size_t BH_HashmapSize(BH_Hashmap *hashmap);
+
+Возвращает количество элементов.
+
+
+=head2 BH_HashmapCapacity
+
+ size_t BH_HashmapCapacity(BH_Hashmap *hashmap);
+
+Возвращает ёмкость.
+
+
+=head2 BH_HashmapFactor
+
+ float BH_HashmapFactor(BH_Hashmap *hashmap);
+
+Возвращает максимальный коэффициент загрузки.
+
+
+=head2 BH_HashmapSetFactor
+
+ void BH_HashmapSetFactor(BH_Hashmap *hashmap,
+ float factor);
+
+Задаёт максимальный коэффициент загрузки I<factor>.
+
+Новое значение максимального коэффициента загрузки будет применено при следующем
+вызове функции
+L</BH_HashmapInsert> или L</BH_HashmapReserve>.
+
+
+=head2 BH_HashmapIterAt
+
+ void *BH_HashmapIterAt(BH_Hashmap *hashmap,
+ void *key);
+
+Возвращает итератор на элемент с заданным ключом I<key>.
+
+В случае успеха функция возвращает итератор или NULL.
+
+
+=head2 BH_HashmapIterNext
+
+ void *BH_HashmapIterNext(BH_Hashmap *hashmap,
+ void *iter);
+
+Возвращает итератор на следующий элемент.
+
+Опциональный параметр I<iter> принимает итератор на текущий элемент.
+
+В случае успеха функция возвращает итератор или NULL.
+
+
+=head2 BH_HashmapIterRemove
+
+ void BH_HashmapIterRemove(BH_Hashmap *hashmap,
+ void *iter);
+
+Удаляет элемент по заданному итератору I<iter>.
+
+Вызов этой функции делает существующие итераторы недействительными.
+
+
+=head2 BH_HashmapIterKey
+
+ void *BH_HashmapIterKey(void *iter);
+
+Возвращает ключ элемента, указываемый итератором I<iter>.
+
+
+=head2 BH_HashmapIterValue
+
+ void *BH_HashmapIterValue(void *iter);
+
+Возвращает значение элемента, указываемое итератором I<iter>.
+
+
+=head1 СМ. ТАКЖЕ
+
+L<BH>