如何通过自定义选择底层容器来创建树结构
How to make tree structure with custom selection of underlying container?
我试图制作一个模板化的Trie结构。它表示内部私有结构Node
中的树,其中包含TElem
,bool
,表示该特定节点是终端和子节点的向量:
template<typename TElem>
class Trie
{
// ...
private:
struct Node
{
TElem elem;
bool isTerminal;
std::vector<std::shared_ptr<Node>> children;
};
Node root_;
};
现在我想制作另一个模板参数,它可以选择另一个下属容器,例如list
。如何做到这一点?
使用模板模板参数(未经测试的代码,但总体思路应该可以):
template <typename TElem,
template <typename, typename> class Cont
template <typename> class Allocator=std::allocator>
class Trie {
private:
struct Node
{
typedef std::shared_ptr<Node> NodePtr_;
TElem elem;
bool isTerminal;
Cont<NodePtr_, Allocator<NodePtr_>> children;
};
Node root_;
};
然后
Trie<int, std::list> myTrie = ....;
相关文章:
- 创建结构的数组时遇到分段错误
- 如何在 c++ 中创建结构向量的映射
- 为什么我们再次从结构对象创建结构变量?
- 如何在C++中为堆栈动态创建结构?
- 如何创建结构的结构结构,等等嵌套多个结构?
- 创建结构作为枚举类成员
- 第一次尝试使用new动态创建结构数组,程序挂起没有错误
- 创建结构体向量,表达式:向量下标超出范围
- variadic宏来创建结构
- C++类中创建结构的向量
- 如何动态创建 C++ 结构
- 如何在C++循环中创建结构成员
- 如何读取文件中的数据并创建结构向量
- C++从 DLL 创建结构
- 动态数组添加元素而不创建结构变量/对象
- 创建结构并传递IT功能
- c ++ 当我创建结构数组时,如何使用结构数组内的类的参数调用构造函数
- 尝试创建结构对象,在位置0x3FE00000中创建访问冲突写入错误
- 如何创建结构类型数组的地图对象
- 在C 中创建结构数组