2014-02-23 85 views
1

我想制作一个向量类型为int的向量,然后将其打印出来。我在main.cpp中有这个代码。打印载体的矢量

Grid myGrid; 
for (int i = 0; i < myGrid.getdivas(); i++) 
{ 
    for (int j = 0; j < myGrid.getdivas(); j++) 
    { 
     cout << myGrid[i][j]; 
    } 
} 

我一格的构造是

Grid::Grid() 
{ 
    for (int i = 0; i < 10; i++) 
    { 
     vector<int> row; 
     for (int j = 0; j < 10; j++) 
     { 
      row.push_back(0); 
     } 
     grid_.push_back(row); 
    } 
} 

我一直在COUT语句得到一个错误:

“网格”不定义此运算符或转换到类型可接受的预定义运营商

+2

请提供[SSCCE](http://www.sscce.org/);唯一引起我注意的是在你的构造函数中初始化一个'grid_'向量,但是在你打印网格的循环中,你尝试访问'Grid'类型的'operator []'。那是什么回报? –

+0

'.getdivas()'?我希望这将会回归珍妮弗洛佩兹和莫里西。 –

回答

2

应该是:

cout << myGrid.grid_[i][j]; // if grid_ is public 

但是,您可能会想为您的课程重载operator[]。更好的是,有一个会员功能,可以打印或超载operator<<

+0

如果我做'cout << myGrid.grid_ [i] [j];' – user062495

+0

它说gird_是不可访问的,因为它是'private'或'protected'。 – jrok