13#ifndef __xwos_lib_map_h__
14#define __xwos_lib_map_h__
74 void * key,
void * value)
87#define xwlib_map_itr_forward(map, c) \
88 xwlib_bclst_itr_next_entry((c), \
90 struct xwlib_map_container, bcln)
97#define xwlib_map_itr_backward(map, c) \
98 xwlib_bclst_itr_next_entry((c), \
100 struct xwlib_map_container, bcln)
108#define xwlib_map_itr_forward_safe(map, c, n) \
109 xwlib_bclst_itr_next_entry_safe((c), \
111 struct xwlib_map_container, bcln)
119#define xwlib_map_itr_backward_safe(map, c, n) \
120 xwlib_bclst_itr_prev_entry_safe((c), (n), \
122 struct xwlib_map_container, bcln)
static void xwlib_bclst_init_head(struct xwlib_bclst_node *h)
初始化一个链表头。
static void xwlib_bclst_init_node(struct xwlib_bclst_node *n)
初始化一个链表节点。
#define xwlib_bclst_head
双循环链表头
static void xwlib_map_init(struct xwlib_map *map, xwlib_map_cmp_f cmp)
初始化键值对容器的map
xwssq_t(* xwlib_map_cmp_f)(void *, void *)
键比较函数类型
xwer_t xwlib_map_find(struct xwlib_map *map, void *key, struct xwlib_map_container **mcbuf)
根据 键值 查找容器
static void xwlib_map_init_container(struct xwlib_map_container *mc, void *key, void *value)
初始化键值对容器
xwer_t xwlib_map_insert(struct xwlib_map *map, struct xwlib_map_container *newmc)
插入键值对容器
xwer_t xwlib_map_erase(struct xwlib_map *map, struct xwlib_map_container *mc)
删除键值对容器
static void xwlib_rbtree_init_node(struct xwlib_rbtree_node *rbn)
初始化红黑树节点
static void xwlib_rbtree_init(struct xwlib_rbtree *rbt)
初始化红黑树
struct xwlib_bclst_node bcln
struct xwlib_rbtree_node rbn
struct xwlib_rbtree rbtree
struct xwlib_bclst_node bclh