GLib

属性说明
类型编译型库(C 共享库)
许可证LGPL
仓库https://docs.gtk.org/glib/

核心数据结构

类型说明类比
GList双向链表std::list
GSList单向链表std::forward_list
GHashTable哈希表(任意键值对)std::unordered_map
GArray动态数组(任意大小元素)std::vector
GPtrArray指针数组std::vector<void*>
GQueue双端队列std::deque
GTree平衡二叉树(红黑树)std::map
GString动态字符串std::string
GStringChunk字符串池

超出数据结构的附加能力:GLib 还提供事件循环(GMainLoop)、线程抽象(GThread)、内存切片分配器(GSlice)、Unicode 支持、日志系统等,是 GNOME/GTK 生态的基础层。

GHashTable *ht = g_hash_table_new(g_str_hash, g_str_equal);
g_hash_table_insert(ht, "key", "value");
char *val = g_hash_table_lookup(ht, "key");
g_hash_table_destroy(ht);

跨语言参考: C++动态内存