1

首先,我在 2 个文件(.h 和 .cpp 文件)中有 2 个类,Create.hAI.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->state == State::empty)部分。我对每个错误都使用了吗?

编辑:邻居向量中肯定有元素

邻居矢量

4

2 回答 2

1

如果您在启用优化的情况下进行编译,则可能会完全删除类似的空if语句(它没有副作用)。

(虽然,我认为调试器不会让你在该行设置断点,如果它被删除。所以这是一个简单的测试 - 尝试在if自身上设置断点。)

于 2013-11-12T19:09:14.460 回答
0

似乎向量是空的。您可以在循环之前检查此打印其大小。我想回答一些意见。这种形式的 for 循环是 MS VC++ 语言扩展。它不是 C++/CLI。

于 2013-11-12T18:49:57.120 回答