我首先在2个文件中有2个类(.h和.cpp文件), Create.h 和 AI.h 。
Create.h中有这个结构:
public:
struct Cell
{
//some stuff
vector<Cell*> neighbors;
State state;
};
这是枚举类State(存储在Create.h文件中):
enum class State : char
{
//some states like "empty"
};
现在在AI.cpp中,我有一个这样的函数:
void AI::Function(Create::Cell cell)
{
for each (Create::Cell* var in cell.neighbors)
{
if (var->state == State::empty)
{
}
}
}
所以基本上我试图访问存储在cell.neighbors中的每个单独的单元格,每个单元格都有一个,所以我可以为它们中的每一个做一些事情。
根据我的调试器,虽然它甚至没有到达 if(var-&gt; state == State :: empty)部分。我是否每次使用错误?
编辑:邻居矢量中有明确的元素
答案 0 :(得分:1)
如果您在启用优化的情况下进行编译,那么可能会完全删除这样的空if
语句(它没有副作用)。
(虽然,我认为调试器不允许你在该行上设置断点,如果它被删除。所以这是一个简单的测试 - 尝试在if
本身设置一个断点。)
答案 1 :(得分:0)
似乎向量是空的。您可以在循环之前检查此打印的大小。 我想回答一些意见。这种形式的for循环是MS VC ++语言扩展。它不是C ++ / CLI。