Maps - Abbildungen
In ziemlich vielen Situationen musst du Pärchen, bestehend aus
einem Schlüssel und einem Wert, speichern.
Zum Beispiel kann ein Charakter eine Anzahl verschiedener Dinge
besitzen und eine bestimmte Anzahl dieser Dinge.
In so einem Fall ist das Ding der Schlüssel (key) und die Zahl der
Wert (value). Abbildungen verwalten solche
Pärchen - sortiert nach keys (Schlüsseln). Du kannst
Pärchen zur Abbildung hinzufügen und nach Werten suchen, die
bestimmten Schlüsseln entsprechen. Weil die Schlüssel
sortiert sind, kannst auch die vorhergehenden und die
darauffolgenden Schlüssel finden. Manchmal ist es auch
nützlich eine map (Abbildung) zu verwenden, um einfach nur
Schlüssel abzulegen - ohne einen korrespondieren Wert.
In so einem Fall, verwende einfach einen Wert von 0. Die folgenden
Funktionen gibt es:
ds_map_create() Erstellt eine neue map
(Abblidung). Die Funktion gibt eine ganzzahlige id wieder, welche in
anderen Funktion verwendet werden muss, um auf diese map zuzugreifen.
ds_map_destroy(id) Vernichtet die map mit der
angegebenen id und gibt den belegten Speicher wieder frei. Vergiss
nicht diese Funktion aufzurufen, wenn du die Struktur nicht mehr
brauchst.
ds_map_clear(id) Löscht die map mit der
angegebenen id und entfernt alle Daten daraus aber vernichtet die map
nicht.
ds_map_size(id) Liefert die Anzahl der
Schlüssel-Wert-Pärchen, die in der map gespeichert sind.
ds_map_empty(id) Gibt an, ob die map leer ist. Das
ist das Gleiche, wie zu testen, ob die Größe 0 ist.
ds_map_add(id,key,val) Fügt ein key-value pair
(Schlüssel-Wert-Paar) zu der map hinzu.
ds_map_replace(id,key,val) Ersetzt den Wert
entsprechend dem Schlüssel durch einen neuen Wert.
ds_map_delete(id,key) Löscht den Schlüssel
und dazugehörenden Wert aus der map. (Falls mehrere Einträge
mit dem gleichen Schlüssel vorhanden sind, wird nur einer
gelöscht.)
ds_map_exists(id,key) Gibt an, ob der Schlüssel
in der map vorhanden ist.
ds_map_find_value(id,key) Liefert den Wert
entsprechend des angegebenen Schlüssels.
ds_map_find_previous(id,key) Liefert den
größten Schlüssel in der map, der noch kleiner als der
angegebene Schlüssel ist. (Beachte, dass der Schlüssel
wiedergegeben wird, nicht der Wert. Du kannst die vorherige Funktion
verwenden, um den Wert zu ermitteln.)
ds_map_find_next(id,key) Liefert den kleinsten
Schlüssel in der map, der noch größer als der
angegebene Schlüssel ist.
ds_map_find_first(id) Liefert den kleinsten
Schlüssel der map.
ds_map_find_last(id) Liefert den größten
Schlüssel der map.