我想知道是否可以声明一个类型T,即unordered_map<char, T>,其中unordered_map值的类型也是T,从而形成一个具有可变子结构的树状结构。
基本上,我考虑的是一些功能类似于使用以下功能的东西,但没有,在下面定义了类似于Node的结构:
//Node of a tree
struct Node {
char val;
unordered_map<char, Node*> children;
};表面上看,这将需要我声明一个多层次的地图与未知的水平。这个是可能的吗?
unordered_map<char, unordered_map<char, unordered_map<char, unordered_map<char, ...C++中有什么东西(可能是std::any和std::any_cast)可以解决上面类似于Map<char, Object>的问题,其中的值类型Object本身也是Map<char, Object>
发布于 2022-05-09 06:49:04
见https://godbolt.org/z/rKaGE14qe。
它与gcc一起编译12.1,在gcc 11.3中,它不会编译。实际上,unordered_map可以支持不完整的类型,因为unordered_map的初始化不需要创建value_type对象。然而,到目前为止,这是未定义的行为。
https://stackoverflow.com/questions/72167629
复制相似问题