通用的 C/C++ 库 qLibc
jopen
12年前
qLibc 项目的目的就是提供一个通用的 C/C++ 库,包括所有种类的容器和常用工具函数。
特性:
- General Containers.
- List — Doubly Linked List.
- List Table — KEY/VALUE paired table implemented on linked-list.
- Hash Table — Hash based KEY/VALUE paired table.
- Static Hash Table — Static(array/mmapped/shared) memory based KEY/VALUE paired table.
- Vector — implements a growable array of elements.
- Queue — FIFO(First In First Out) implementation.
- Stack — LIFO(Last In First Out) implementation.
- General utilities.
- Extensions.
示例代码:
// create a hash-table with hash range 100. // Hash range does NOT mean maximum number of elements. Refer API doc. qhashtbl_t *tbl = qhashtbl(100); // add an element which key name is "score". int x = 12345; tbl->put(tbl, "score", &x, sizeof(int)); // get the value of the element. int *px = tbl->get(tbl, "score", NULL, true); if(px != NULL) { printf("%d\n", *px); free(px); } // release table tbl->free(tbl);