【发布时间】:2026-01-20 03:55:02
【问题描述】:
目前我正在努力处理应该包含自己的地图。但是编译的时候不知道嵌套的深度。
std::map<Key, std::map<Key, std::map<Key, std::map<Key, ...>>>>
有没有一种方法可以在不无限重复自己的情况下实现这个目标?
【问题讨论】:
-
没有。如果它没有逻辑意义,你就不能在代码中表示它。
-
不,你可能做不到。对于像这样的自引用结构,您可能需要一个包含指向映射的指针的映射。另请注意,要包含任何有意义的信息,可能需要像结构/类/联合这样的东西,因此它也可以包含其他东西(一些实际数据)。
-
对,它们的“最后一个”映射应该包含一个值。谢谢,我会试着想点别的。
-
您要解决的原始问题是什么?或许我们可以建议一个更合适的数据结构。
-
您可以使用一些元编程技术通过递归模板来实际生成它——它是否有用还是合理的,仍然是一个悬而未决的问题。在 C++ 中,你可以做很多既没用也不理智的事情。