gpt4 book ai didi

c++ - 递归包含自身列表的对象

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

为了练习,我正在尝试制作一个递归目录解析器。

为了简洁起见,我也想递归地包含结果,例如:

1 class CDirectory
2 {
3 private:
4 std::string name;
5 std::vector<CDirectory> subDirectories
6 public:
7 //Various things, constructors etc. go here
8 }

然而,I see here第 5 行是不支持的行为 - “C++ 标准 (2003) 明确指出,实例化具有不完整类型的标准容器会调用未定义的行为。”

那我该怎么办?有没有办法让一个对象包含一个相似对象的列表?如果不出意外,我知道制作 vector 的 vector 绝不是非法的,所以这是一个包含自身的对象。

最佳答案

Boost 具有 containers that support incomplete types .您可以使用其中之一。

#include <boost/container/vector.hpp>

class CDirectory
{
private:
std::string name;
boost::container::vector<CDirectory> subDirectories
public:
//Various things, constructors etc. go here
};

关于c++ - 递归包含自身列表的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27506329/

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