gpt4 book ai didi

python - B树 : Is there a difference between different TreeSet incarnations?

转载 作者:太空宇宙 更新时间:2023-11-03 18:16:29 26 4
gpt4 key购买 nike

我正在查看BTrees库并注意到有多个 TreeSet (和其他)类,例如

  • BTrees.IOBTree.TreeSet
  • BTrees.OOBTree.TreeSet
  • BTrees.LFBTree.TreeSet
  • ...

据我所知,BTree 类对于每个类都是不同的,因为它接受不同类型的键和值,但是 TreeSet 类又如何呢?

经过反复试验,我发现第一个字母决定了 TreeSet 实例可以保存哪些类型,但是第二个字母呢?它对成员的存储/检索方式有影响吗?

有相关文档吗?

最佳答案

不,TreeSet 类忽略第二个字母;它们在每个 XXBTree 模块中提供,以确保完整性和易于导入。

在幕后,这些模块是使用大量创造性的预处理器宏工作创建的,这使得为每个键值类型变体生成 TreeSet 类型变得更加容易。

包文档部分依赖于 interface definitions ;每个模块都有一个接口(interface),其中第一句话记录了该包中的集合包含的内容:

class IIntegerObjectBTreeModule(IBTreeModule, IMerge):
"""keys, or set values, are integers; values are objects.

describes IOBTree and LOBTree"""

class IIntegerIntegerBTreeModule(IBTreeModule, IIMerge, IMergeIntegerKey):
"""keys, or set values, are integers; values are also integers.

describes IIBTree and LLBTree"""

例如,说明对于 IOBTreeIIBTree 模块,设置值都是整数。因此,IOBTree.TreeSetIIBTree.TreeSet 本质上是相同的。

package documentation然后使用这些接口(interface)定义自动生成 API 文档,包括 per-module documentation with the (tree)set value details .

关于python - B树 : Is there a difference between different TreeSet incarnations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24932797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com