Update page '2.4. vtype_map'

Gregory Lirent 2022-08-17 19:27:11 +03:00
parent aa2abe666f
commit b5400de09c

@ -1,10 +1,21 @@
## vtype_map
Набор пар ключ-значение с неизменяемыми уникальными ключами. Тип содержащихся ключей должен быть определен при инициализации контейнера, данные могут иметь произвольный тип. Контейнер основан на красно-черном дереве (осуществляя поиск по ключу), в связи с чем, обладает всеми преимуществами и недостатками оного.
### [include/map.h](https://gogs.lirent.ru/lirent/libcdsb/src/master/include/map.h)
##### Интерфейс callback-функции доступа к элементу (далее CallbackT)
- `int callback(const void* key, vtype key_type, void* value, vtype value_type, void* data)`
- `key`: указатель на область памяти, в которой располагается значение ключа ячейки контейнера, доступ к которой обеспечивается данной функцией. Изменение данных недопустимо и ведет к неопределенному поведению программы.
- `key_type`: значение типа ключа, заданное константой перечисления **vtype**, соответствующее типу данных, к которым обеспечивается доступ.
- `value`: указатель на область памяти, в которой располагается значение данных ячейки контейнера, доступ к которой обеспечивается данной функцией.
- `value_type`: значение типа данных, заданное константой перечисления **vtype**, соответствующее типу данных, к которым обеспечивается доступ.
- `data`: произвольные пользовательские данные, которые будут переданны в callback вызывающим методом.
##### Базовый блок