c++ - 在结构定义中声明一个结构堆栈

标签 c++ struct stack nfa

<分区>

我需要在它自己的结构声明中声明两个结构堆栈。我知道我可以用数组做这个操作,只要我用结构内部的指针引用它(即 FA *goingTo[30]; 会给我一个 30 FAs)。有没有类似的方法来引用堆栈?

typedef struct FA
{
    std::stack<FA> goingTo;
    std::stack<FA> comingFrom;
};

最佳答案

您在结构中定义的堆栈对象本身将包含(可能)结构的多个实例,每个实例包含其自己的堆栈,堆栈又包含更多结构。所以如果你仔细想想,这是一个无限的遏制链。您可以修改定义(和用法)以包含指向 FA* 的指针堆栈。这将解决问题。

typedef struct FA {
   std::stack<FA*> goingTo;
   std::stack<FA*> comingFrom;
};

关于c++ - 在结构定义中声明一个结构堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26210452/

相关文章:

c++ - 识别圈子

c++ - 是否可以根据 C++20 中稍后的运行时决定存在不同的隐式对象?

swift - 如何用几个相关的 CGPoint 数组构造 Swift 代码

go - 如何创建动态类型的变量

c - 如何确定嵌入式程序正在使用多少堆栈空间

c++ - C++ 处理类模板及其类型的方法是什么?

c++ - FD_SET 问题/网络

c - C 中线程之间共享结构

c# - 在堆栈中添加新项目时引发事件

c - 简单的 C 代码错误