我有一个班级成员:
std::vector<std::vector<CellState*> > State;
Cellstate类型是一个结构:
struct CellState
{
bool state;
int x;
int y;
};
使用同一类的方法,我想读取/写入此结构的元素。我想到的所有方式都失败了。我有很多关于C ++和STL的好书,但似乎找不到这些信息。我不知道如何取消引用这种指针。
要清楚,我要这样做:
State[x][y].state = FALSE;
除了明显更正以解决指针取消引用问题。
答案 0 :(得分:1)
State[x][y]
是一个指针,因此您必须使用->
而不是.
来访问成员。例如。
State[x][y]->state = false;
还请注意,仅当x
和y
在向量的边界内时才有效。如果您提前知道最大尺寸,则可以通过声明矢量来解决:
std::vector<std::vector<CellState *>> State(Width, std::vector<CellState *>(Height));
其中Width
是x
方向的大小,Height
是y方向的大小。
附带说明,通常以行,列顺序而不是列,行顺序建立索引。