<分区>
我需要在它自己的结构声明中声明两个结构堆栈。我知道我可以用数组做这个操作,只要我用结构内部的指针引用它(即 FA *goingTo[30];
会给我一个 30 FA
s)。有没有类似的方法来引用堆栈?
typedef struct FA
{
std::stack<FA> goingTo;
std::stack<FA> comingFrom;
};
<分区>
我需要在它自己的结构声明中声明两个结构堆栈。我知道我可以用数组做这个操作,只要我用结构内部的指针引用它(即 FA *goingTo[30];
会给我一个 30 FA
s)。有没有类似的方法来引用堆栈?
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/