我有一个在向量中嵌套向量的问题,相当于C中的二维数组。我已经尝试了在许多网站上发布的演示代码,但都没有用。
class Board
{
public:
vector< vector<Cell> > boardVect; //Decalre the parent vector as a memebr of the Board class
Board()
{
boardVect(3, vector<Cell>(3)); //Populate the vector with 3 sets of cell vectors, which contain 3 cells each, effectivly creating a 3x3 grid.
}
};当我尝试编译时,我收到以下错误:
F:\main.cpp|52|error:对'(std::vector >) (int,std::vector)‘的调用不匹配
第52行是:boardVect(3, vector<Cell>(3));
当我用3个向量类构造父向量时,我得到的错误是错误吗?
发布于 2011-05-14 08:57:53
您需要使用初始化列表来调用类成员的构造函数,即:
Board()
:boardVect(3, vector<Cell>(3))
{}一旦进入构造函数的主体,就太晚了,所有的成员都已经构造好了,并且只能调用非构造函数的成员函数。你当然可以这样做:
Board()
{
boardVect = vector<vector<Cell> >(3, vector<Cell>(3));
}但是初始化列表是首选的。
https://stackoverflow.com/questions/5999141
复制相似问题