Hakurakenteet

Joissain harvoissa tilanteissa voit tarvita nimi-arvoparien tallennusmahdollisuutta. Hahmolla voi esimerkiksi olla tietty määrä esineitä ja jokaista esinettä tietty määrä. Tässä tapauksessa esine on nimi eli avain ja lukumäärä on arvo. Hakurakenteet käsittelevät tällaisia pareja ja ne järjestetään avainten mukaan. Voit lisätä hakurakenteeseen pareja ja etsiä tiettyä avainta vastaavaa arvoa. Koska avaimet on järjestetty, voit myös etsiä seuraavaa ja edellistä avainta. Joskus on myös hyödyllistä pelkästään säilyttää avaimia ilman mitään arvoa. Tällöin voit yksinkertaisesti laittaa arvoksi 0. Seuraavat funktiot käsittelevät hakurakenteita:

ds_map_create() Luo uuden hakurakenteen. Funktio palauttaa kokonaisluvun, joka on hakurakenteen id ja jota on käytettävä kaikissa muissa funktioissa juuri tämän tietyn hakurakenteen käsittelemiseksi.
ds_map_destroy(id) Tuhoaa hakurakenteen, jolla on annettu id, ja vapauttaa sen varaaman muistin. Älä unohda kutsua tätä, kun et enää tarvitse hakurakennetta.
ds_map_clear(id) Tyhjentää hakurakenteen, jolla on annettu id, jolloin kaikki siinä oleva tieto poistetaan, mutta itse hakurakennetta ei tuhota.
ds_map_copy(id,source) Kopioi hakurakenteen source hakurakenteeseen, jolla on annettu id.
ds_map_size(id) Ilmoittaa hakurakenteeseen, jolla on annettu id, säilöttyjen nimi-arvoparien määrän.
ds_map_empty(id) Ilmoittaa, onko hakurakenne, jolla on annettu id, tyhjä. Tämä on sama asia, kuin jos testaisi, onko hakurakenteen koko 0.
ds_map_add(id,key,val) Lisää hakurakenteeseen, jolla on annettu id, ilmoitetun nimi-arvoparin.
ds_map_replace(id,key,val) Korvaa hakurakenteessa, jolla on annettu id, olevan ilmoitetun avaimen arvon uudella.
ds_map_delete(id,key) Poistaa hakurakenteesta, jolla on annettu id, ilmoitetun avaimen ja sen arvon. (Jos saman avaimen tietueita on useampi, vain yksi poistetaan.)
ds_map_exists(id,key) Ilmoittaa, onko hakurakenteessa, jolla on annettu id, ilmoitetun niminen avain.
ds_map_find_value(id,key) Ilmoittaa hakurakenteessa, jolla on annettu id, olevan avaimen key arvon.
ds_map_find_previous(id,key) Ilmoittaa suurimman ilmoitettua avainta pienemmän avaimen hakurakenteesta, jolla on annettu id. (Huomaa, että tämä palauttaa avaimen, ei arvoa. Voit käyttää edellistä funktiota arvon noutamiseen.)
ds_map_find_next(id,key) Ilmoittaa pienimmän ilmoitettua avainta suuremman avaimen hakurakenteesta, jolla on annettu id.
ds_map_find_first(id) Ilmoittaa hakurakenteen, jolla on annettu id, pienimmän avaimen.
ds_map_find_last(id) Ilmoittaa hakurakenteen, jolla on annettu id, suurimman avaimen.
ds_map_write(id) Muuntaa hakutietorakenteen, jolla on annettu id, merkkijonoksi ja palauttaa sen. Tätä merkkijonoa voidaan sitten käyttää esim. sen tallentamiseen tiedostoon. Tällä tavoin tietorakenteiden tallentaminen helpottuu.
ds_map_read(id,str) Lukee tietorakenteen annetusta merkkijonosta (joka on luotu edellisellä funktiolla).