Integer Maps map unsigned 32-bit integer keys to arbitrary pointers. They were added in 1.8.3p7. They're used in a number of places; for example, in queue entry process id related code (src/cque.c), and in looking up the structure representing a connected socket via its descriptor number (src/bsd.c).
To use integer maps, you have to #include "intmap.h". The type of an integer map is a intmap *. The type is opaque; you cannot directly access elements of the structure.
intmap * im_new(void)bool im_insert(intmap *, uint32_t, void *)void * im_find(intmap *, uint32_t)NULL if the key isn't present.bool im_exists(intmap *, uint32_t)int64_t im_count(intmap *)bool im_delete(intmap *, uint32_t)void im_destroy(intmap *)
void im_dump_graph(intmap *, const char *)Integer maps use a slight modification of radix trees (AKA patricia trees), a self-balancing binary tree where branching is based on the status of particular bits in the key.