【发布时间】:2017-04-09 08:57:31
【问题描述】:
我想同时实现 Hash-Table 和 Ballanced-Binary-Tree(特别是 AVL),以满足 set 和 dictionary(地图)的需求。
对于第一个目的,只有一个 Key 类,对于第二个目的,有 Key 和 Data(或 Value)。
这两个版本共享很多功能(尤其是在树的情况下),所以我真的不想实现两次:
template<class Key> class AVLTree;
template<class Key, class Val> class AVLTree;
我怎样才能优雅地制作一个“HashTable”类和一个“AVLTree”类,具有一个模板签名并将它们用于两种目的(可能使用包装器/派生类[[Un]Ordered]“Set”和“地图”?
(不,我不想使用 STL)
谢谢
【问题讨论】:
标签: c++ dictionary set containers