【发布时间】:2014-11-30 08:55:13
【问题描述】:
我需要在它自己的结构声明中声明一个结构的两个堆栈。我知道我可以对数组执行此操作,只要我用结构内的指针引用它(即FA *goingTo[30]; 会给我一个包含 30 个FAs 的数组)。有没有类似的方法来引用堆栈?
typedef struct FA
{
std::stack<FA> goingTo;
std::stack<FA> comingFrom;
};
【问题讨论】:
-
你的意思是
std::stack<FA> going_from_or_to[2](或者更好的std::array<std::stack<FA>> going_from_or_to),然后使用指针、迭代器或索引来遍历它们?不清楚你在问什么。 -
或者等等,你的意思是有没有办法迭代inside一个堆栈?在这种情况下,否:
std::stack仅提供对top元素的访问。如果您想访问其他元素,只需直接使用std::vector或std::deque;std::stack几乎一文不值。 -
不允许结构包含自己的标准容器。你必须做一些不同的事情。 Boost 有一些容器可以做到这一点。
-
第一个选项是我想要做的。我为混乱道歉。我需要在 FA 的定义内执行此操作,因为我将有许多不同的 FA 前往每个 FA 并来自每个 FA。好的,我想我需要查找其他选项,谢谢。