0

我写了一些这样的代码

struct connectedGrids
{
    int Coord[3];
    enum faceOrien_Type
    {
        xNeg = 0,
        xPos = 1,
        yNeg = 2,
        yPos = 3,
        zNeg = 4,
        zPos = 5
    }faceOrien;
};

class  face
{
public:
    vector<connectedGrids> ConnectedGrids;
};

class grid
{
public:
    face Face;
}

我在 main.cpp 中初始化了一个对象 Grid

vector<vector<vector<grid> > > Grid = initGrid();

我想在嵌套类中调用 struct vector 的成员,如下所示:

Grid[i][j][k].Face.ConnectedGrids.faceOrien = 1;

但它给了我一个错误说

faceOrien 不是 std::vector<_Ty> 的成员

我是 C++ 新手,我不知道哪里出了问题 :(

4

3 回答 3

4

好吧,ConnectedGrids是一个向量,您将其声明为

vector<connectedGrids> ConnectedGrids;

那么,您想修改该向量中connectedGrids哪些结构?

于 2013-08-09T12:21:47.387 回答
2

ConnectedGrudsvector<connectedGrids>,但您将其视为connectedGrids对象。

Grid[i][j][k].Face.ConnectedGrids[0].faceOrien = 1;
//                               ^^^  assumes size > 0
于 2013-08-09T12:23:08.317 回答
2

Grid[i][j][k].Face.ConnectedGrids 是一个向量。它肯定没有 faceOrien 成员。您应该向向量中添加一些内容,然后访问其元素,例如:

Grid[i][j][k].Face.ConnectedGrids.push_back(connectedGrids());
Grid[i][j][k].Face.ConnectedGrids[someIndex].faceOrien = 1;
于 2013-08-09T12:25:18.730 回答