*引用本文请注明来自 blog.youkuaiyun.com/wtz1985
容器(container)这个词眼,相信大家都不陌生了,特别是JAVA或C#的人,应该是比较熟悉了,它只是一个中间接口,也就是一个纯虚类。它的实现可以通过链表或者数组等结构,它的出现就是为了其他函数体可以自由地选择适合自己的实现结构。比如哈希表、堆栈等结构,既可以用链表实现,也可以用动态数组实现,如果没有一个中间接口的话,想要实现它,那就要分开实现了,这样太浪费时间和空间了。
1、接口定义。
- /*----- container.h -------*/
- #ifndef _CONTAINER_H
- #define _CONTAINER_H
- struct _Container;
- typedef struct _Container Container;
- yptedef void (*ForeachFunc)(void* data, void* ctx);
- typedef void* (*ContainerAppendFunc)(Container* thiz, void* data);
- typedef void* (*ContainerInsertFunc)(Container* thiz, void* dat