Derleyici Tasarımı
Yüklüyor...
Arıyor...
Eşleşme Yok
Sınıflar | Fonksiyonlar
map.h Dosya Referansı

Basit hashmap. Ayrıntılar...

#include <stddef.h>
map.h için içerme bağımlılık grafiği:
Bu şekil hangi dosyaların doğrudan ya da dolaylı olarak bu dosyayı içerdiğini gösterir:

Bu dosyanın kaynak koduna git.

Sınıflar

struct  map
 map. Ayrıntılar...
 
struct  map_it
 map entrylerini tek tek çekebilmek için iteration handle. Ayrıntılar...
 
struct  map_entry
 map'te tutulan key-value ikilisi, entry. Ayrıntılar...
 

Fonksiyonlar

void map_init (struct map *map, size_t value_size)
 Yeni bir map oluşturur.
 
void map_destroy (struct map *map)
 map tarafından ayrılmış belleği temizler.
 
void * map_get (struct map *map, const void *key)
 Key ile eşleşen valueyı döner, key bulunamazsa NULL döner.
 
void * map_get2 (struct map *map, const void *key, size_t keylen)
 Key ile eşleşen valueyı döner, key bulunamazsa NULL döner.
 
void map_insert (struct map *map, const void *key, const void *value)
 map'e key-value ikilisini ekler.
 
void map_insert2 (struct map *map, const void *key, size_t keylen, const void *value)
 map'e key-value ikilisini ekler.
 
void * map_delete (struct map *map, const void *key)
 Key-value ikilisini map'ten siler, valueyu döner.
 
void * map_delete2 (struct map *map, const void *key, size_t keylen)
 Key-value ikilisini map'ten siler, valueyu döner.
 
void map_iter (struct map *map, struct map_it *it)
 map'teki entryleri tek tek çekecek iteration handle hazırlar.
 
struct map_entrymap_iter_next (struct map_it *it)
 Iteration handledan sıradaki entryyi çeker.
 

Ayrıntılı tanımlama

Basit hashmap.

map, FNV hash fonksiyonunu ve open addressing yönetmini kullanır. Key-value ikilisi şeklinde verileri tutar, farklı uzunlukta keylere izin verirken sabit uzunlukta value tutabilir.

map.h dosyasında tanımlanmıştır.

Fonksiyon Dokümantasyonu

◆ map_delete()

void * map_delete ( struct map map,
const void *  key 
)

Key-value ikilisini map'ten siler, valueyu döner.

Dikkat
Dönen value, bir sonraki map işlemine kadar hayatta kalır. Kullanıcı, valueyu kullanmaya devam etmek istiyorsa onu kopyalamalıdır.

key parametresi null-terminated olmalıdır.

◆ map_delete2()

void * map_delete2 ( struct map map,
const void *  key,
size_t  keylen 
)

Key-value ikilisini map'ten siler, valueyu döner.

Dikkat
Dönen value, bir sonraki map işlemine kadar hayatta kalır. Kullanıcı, valueyu kullanmaya devam etmek istiyorsa onu kopyalamalıdır.

◆ map_get()

void * map_get ( struct map map,
const void *  key 
)

Key ile eşleşen valueyı döner, key bulunamazsa NULL döner.

key parametresi null-terminated olmalıdır.

◆ map_init()

void map_init ( struct map map,
size_t  value_size 
)

Yeni bir map oluşturur.

map için gerekli belleği ayırır. value_size parametresi, kullanıcının ekleyeceği valueların maksimum boyutunu belirtir.

◆ map_insert()

void map_insert ( struct map map,
const void *  key,
const void *  value 
)

map'e key-value ikilisini ekler.

Uyarı
map'te daha önce key bulunmuyor olmalıdır.

key parametresi null-terminated olmalıdır.

◆ map_insert2()

void map_insert2 ( struct map map,
const void *  key,
size_t  keylen,
const void *  value 
)

map'e key-value ikilisini ekler.

Uyarı
map'te daha önce key bulunmuyor olmalıdır.

◆ map_iter_next()

struct map_entry * map_iter_next ( struct map_it it)

Iteration handledan sıradaki entryyi çeker.

Tüm entryler çekilmişse, NULL döner.