Карты
В довольно много ситуациях Вам понадобится загружать пары, состоящие из ключа и значения. Например, символ может иметь множество других предметов и для каждого пункта у него есть конкретное число. В этом случае пункт является ключом, и число является значением. Карты поддерживают отсортированные ключом пары. Вы можете добавить пары к карте и искать величину, соответствующую определённым ключам. Поскольку ключи сортируются, Вы можете найти предшествующие и следующие ключи. Иногда это полезно для использования карты, чтобы просто загружать ключи без соответствующего значения. В этом случае, Вы можете просто использовать значение 0. Существуют следующие функции:
ds_map_create()
Создаёт новую карту. Функция возвращает целое как id, что должно быть использовано во всех других функциях, чтобы иметь доступ к конкретной карте.
ds_map_destroy(id)
Уничтожает карту с заданным id, освобождая используемую память. Не забывайте вызывать эту функцию, когда у Вас готова структура.
ds_map_clear(id)
Очищает карту с заданным id, удаляя все данные из неё, но её не уничтожая.
ds_map_copy(id,source)
Копирует карту source в карту с заданным id.
ds_map_size(id)
Возвращает число значения ключевых пар загруженных в карту.
ds_map_empty(id)
Возвращает, если карта пуста. Это так же тестирует, если размер - 0.
ds_map_add(id,key,val)
Добавляет ключевое значение пары к карте.
ds_map_replace(id,key,val)
Заменяет значение, соответствующее ключу с новой величиной.
ds_map_delete(id,key)
Удаляет ключ и соответствующее значение с карты. (Если есть многочисленные данные с тем же ключом - удаляется только один раз.)
ds_map_exists(id,key)
Возвращает, если ключ на карте существует.
ds_map_find_value(id,key)
Возвращает соответствующее ключу значение.
ds_map_find_previous(id,key)
Возвращает больший ключ в карту меньшую, чем указанный ключ. (Отметьте, что возвращается ключ, не значение. Для нахождения значения Вы можете использовать предшествующую программу.)
ds_map_find_next(id,key)
Возвращает наименьший ключ на большую карту, обозначенную указанным ключом.
ds_map_find_first(id)
Возвращает наименьший ключ в карту.
ds_map_find_last(id)
Возвращает наибольший ключ в карту.
ds_map_write(id)
Превращает дата-структуру в строку и возвращает эту строку. Строка может использоваться, например, чтобы сохранить ее в файл. Это обеспечивает простой механизм сохранения дата-структур.
ds_map_read(id,str)
Читает дата-структуру из данной строки (которая создана предыдущим запросом).