指针向量的向量的访问元素

时间:2018-07-08 23:33:49

标签: c++ pointers stl

我有一个班级成员:

std::vector<std::vector<CellState*> > State;

Cellstate类型是一个结构:

struct CellState
{
bool state;
int x;
int y;
}; 

使用同一类的方法,我想读取/写入此结构的元素。我想到的所有方式都失败了。我有很多关于C ++和STL的好书,但似乎找不到这些信息。我不知道如何取消引用这种指针。

要清楚,我要这样做:

State[x][y].state = FALSE;

除了明显更正以解决指针取消引用问题。

1 个答案:

答案 0 :(得分:1)

State[x][y]是一个指针,因此您必须使用->而不是.来访问成员。例如。

State[x][y]->state = false;

还请注意,仅当xy在向量的边界内时才有效。如果您提前知道最大尺寸,则可以通过声明矢量来解决:

std::vector<std::vector<CellState *>> State(Width, std::vector<CellState *>(Height));

其中Widthx方向的大小,Height是y方向的大小。


附带说明,通常以行,列顺序而不是列,行顺序建立索引。