我写了一些像这样的代码
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
中初始化了一个对象Gridvector<vector<vector<grid> > > Grid = initGrid();
我想在嵌套类中调用struct vector的成员,如下所示:
Grid[i][j][k].Face.ConnectedGrids.faceOrien = 1;
但它给我一个错误说
faceOrien不是std :: vector&lt; _Ty&gt;
的成员
我是C ++的新手,我无法摆脱错误的地方:(
答案 0 :(得分:4)
嗯,ConnectedGrids
是一个向量,你将其声明为
vector<connectedGrids> ConnectedGrids;
那么,你希望修改哪个<{1}}结构里面的
答案 1 :(得分:2)
ConnectedGruds
是vector<connectedGrids>
,但您将其视为connectedGrids
对象。
Grid[i][j][k].Face.ConnectedGrids[0].faceOrien = 1;
// ^^^ assumes size > 0
答案 2 :(得分: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;