diff --git a/2.4. vtype_map.md b/2.4. vtype_map.md index f42ba0b..3731322 100644 --- a/2.4. vtype_map.md +++ b/2.4. vtype_map.md @@ -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 вызывающим методом. + + ##### Базовый блок