我需要在它自己的struct声明中声明一个struct的两个堆栈。我知道我可以使用数组执行此操作,只要我在结构中使用指针引用它(即FA *goingTo[30];
将给出一个30 FA
s的数组。是否有类似的方式来引用堆栈?
typedef struct FA
{
std::stack<FA> goingTo;
std::stack<FA> comingFrom;
};
答案 0 :(得分:0)
您在结构中定义的堆栈对象本身包含(可能)结构的多个实例,每个实例包含自己的堆栈,这些堆栈再次包含更多结构。因此,如果你考虑一下,这是一个无限的遏制链。您可以修改定义(和用法)以包含指向FA *的堆栈。这样可以解决问题。
typedef struct FA {
std::stack<FA*> goingTo;
std::stack<FA*> comingFrom;
};