在struct定义中声明一个struct的堆栈

时间:2014-10-06 05:28:12

标签: c++ struct stack nfa

我需要在它自己的struct声明中声明一个struct的两个堆栈。我知道我可以使用数组执行此操作,只要我在结构中使用指针引用它(即FA *goingTo[30];将给出一个30 FA s的数组。是否有类似的方式来引用堆栈?

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

1 个答案:

答案 0 :(得分:0)

您在结构中定义的堆栈对象本身包含(可能)结构的多个实例,每个实例包含自己的堆栈,这些堆栈再次包含更多结构。因此,如果你考虑一下,这是一个无限的遏制链。您可以修改定义(和用法)以包含指向FA *的堆栈。这样可以解决问题。

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