2011-05-14 78 views
4

我在向量中嵌套向量的问题,相当于在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 |错误:不对应的呼叫“(标准::矢量>)(INT,STD ::向量)”

52号线:boardVect(3, vector<Cell>(3));

与3矢量类构建亲代载体时,我得到一个错误的错误?

回答

12

您需要使用,以呼吁你的类的成员构造函数初始化列表,即:

Board() 
    :boardVect(3, vector<Cell>(3)) 
{} 

一旦你进入构造函数体,为时已​​晚,所有成员已经构建好了,只能调用非构造函数成员函数。你当然可以这样做:

Board() 
{ 
    boardVect = vector<vector<Cell> >(3, vector<Cell>(3)); 
} 

但是初始化列表是首选。

+0

是的,那是我的问题,谢谢!我正在使用初始化列表;但我记得用于创建对象的非构造函数。 – dymk 2011-05-14 01:22:38

相关问题