gpt4 book ai didi

c++ - 用 vector 构建动态递归结构

转载 作者:太空宇宙 更新时间:2023-11-04 13:08:42 25 4
gpt4 key购买 nike

我想知道为什么下面的代码对编译器来说是错误的:

struct foo {
int a;
vector<foo> b;
};

int main() {
foo c = foo{1, vector<foo>{1, vector<foo>{1}}};
}

而它是用这个编译的:

foo c = foo{1, vector<foo>{1}};

那是因为不支持这种嵌套结构构造还是我做错了?

最佳答案

使用boost recursive wrapper :

#include <boost/variant/recursive_wrapper.hpp>
struct foo;
struct foo {
int a;
vector<boost::recursive_wrapper<foo>> b;
};

如果您不想使用 boost 或滚动自己的包装器,
考虑在内部使用指针。

关于c++ - 用 vector 构建动态递归结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40944341/

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