该包实现了一些通用数据结构。
array2d
:二维数组。avl
:AVL树。bimap
:双向映射;允许对键和值进行双向查找的映射。btree
:B树。cache
:map[K]V
的包装器,使用最大大小并在满时通过LRU驱逐元素。hashmap
:使用线性探测的哈希映射。主要特点是可以高效复制,底层使用写时复制。hashset
:使用哈希映射作为底层存储的哈希集合。heap
:二叉堆。interval
:区间树,实现为增强的AVL树。list
:双向链表。mapset
:使用Go内置map作为底层存储的集合。multimap
:允许多个条目具有相同键的关联容器。queue
:先进先出(FIFO)队列。rope
:通用绳索数据结 构,类似于数组但支持在任何位置高效插入和删除。绳索通常用于字节数组,但这个绳索是通用的。prope
:绳索的持久版本,允许以很少的额外时间或内存保存绳索的不同版本。stack
:后进先出(LIFO)栈。trie
:三叉搜索树。ulist
:展开的双向链表。请查看各个子包以获取文档和示例。顶层generic
包提供了一些有用的类型和约束。详见DOC.md文档。
如果您想贡献新功能,请先让我知道您想添加什么(通过电子邮件或问题跟踪器)。以下是一些想法: