我正在尝试编写B+Tree的通用C++实现。我的问题源于B+Tree中有两种类型的节点;内部节点(包含指向子节点的键和指针)和叶节点(包含键和值),以及内部节点中的指针可以指向其他内部节点,也可以指向叶节点。我不知道如何使用模板对这种关系进行建模(我不想使用强制转换或虚拟类)。
我希望有一个解决我的问题的方法,或者在C++中实现B+Tree的更好的方法。
发布于 2010-10-17 00:39:23
最简单的方法:
bool mIsInternalPointer;
union {
InternalNode<T>* mInternalNode;
LeafNode<T>* mLeafNode;
};使用boost::variant可以稍微简化这一过程:)
https://stackoverflow.com/questions/3949329
复制相似问题