1

まず、2 つのファイル (.h と .cpp ファイルの両方)、 Create.hAI.hに 2 つのクラスがあります。

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 に for each で格納されている個々のセルにアクセスしようとしているので、それぞれにいくつかのことを行うことができます。

私のデバッガーによると、 if (var->state == State::empty)の部分にも到達しません。for each を間違って使用していますか?

編集:neighborsベクトルには間違いなく要素が含まれています

隣人ベクトル

4

2 に答える 2

1

最適化を有効にしてコンパイルしている場合、ifそのような空のステートメントは完全に削除される可能性があります (副作用はありません)。

(ただし、デバッガーは、その行が削除された場合、その行にブレークポイントを設定できないと思います。したがって、これは簡単なテストifです。それ自体にブレークポイントを設定してみてください。)

于 2013-11-12T19:09:14.460 に答える