gpt4 book ai didi

c++ - 递归数据结构的前向声明

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:16:57 25 4
gpt4 key购买 nike

回到我编写 Delphi 的时候,有一个 TStringList,它基本上是一个字符串映射到 Delphi 的通用 TObject。使用这种结构,我可以通过针对其中一个字符串键放置另一个 TStringList 来轻松地创建递归的层次结构:

ParentStringList["somekey"] = "just a string value";
ParentStringList["anotherkey"] = SomeChildStringList;

问题是,我如何在 C++ 中实现同样的事情?

我目前拥有的是:

typedef boost::variant< std::string, my_dictionary > my_variant;
typedef std::map < std::string, my_variant > my_dictionary;

...这显然是圆形的。

我能否在不将内容包装在结构中(我可以转发声明)或不使用指针(编译器知道其大小)的情况下执行此操作?

最佳答案

Boost.Variant documentation涵盖了这个确切的案例。如果不使用指针或其他类似的包装器,就无法做到这一点。

关于c++ - 递归数据结构的前向声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29060007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com