Карты

В довольно много ситуациях Вам понадобится загружать пары, состоящие из ключа и значения. Например, символ может иметь множество других предметов и для каждого пункта у него есть конкретное число. В этом случае пункт является ключом, и число является значением. Карты поддерживают отсортированные ключом пары. Вы можете добавить пары к карте и искать величину, соответствующую определённым ключам. Поскольку ключи сортируются, Вы можете найти предшествующие и следующие ключи. Иногда это полезно для использования карты, чтобы просто загружать ключи без соответствующего значения. В этом случае, Вы можете просто использовать значение 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) Читает дата-структуру из данной строки (которая создана предыдущим запросом).