2010-11-30 33 views
4

我正在使用二维数组作为我正在制作的棋盘游戏的棋盘。成员是指向“Tile”类型的对象的指针。索引是x和y,分别表示水平和垂直位置。 在Board类中,它看起来像这样。在指针的2D向量中插入列的正确方法是什么?

vector<vector<Tile*> > playGround; 

的问题是,随着比赛的进行,瓦片被添加到游乐场,和向量必须能够的情况下,拓展新的互动的职位需要这个。我一直在尝试向顶部添加行,并向左侧添加列。我试图使用insert()函数,这就是我的问题所在。

现在我的代码如下所示:

void Board::addRowTop() 
{ 
    Tile* t; 
    int i = 0; 
    maxY++; 
    for (; i < maxX ; i++) 
     playGround[i].insert(0, t); 
} 

不介意maxX的美星和变量;他们与手头上的主题无关。问题是:insert(0,t)显然不起作用,因为“t”不是函数期望的数据类型。

我的问题很简单:为了解决这个问题,insert()的第二个参数到底需要什么?我环顾了谷歌,但我似乎无法找到正确的答案。

非常感谢。

回答

3

我不认为它是导致函数的't'参数:playGround [i]是一个std::vector<Tile *>,所以你应该可以插入Tile * s(尽管请告诉我你正在初始化' t'首先 - 至少为NULL或0!)。

问题是,插入的第一个参数必须是一个迭代器。尝试:

playGround[i].insert(playGround[i].begin(), t); 

-matt

+0

谢谢!答案并不完全正确,但帮助我找到了正确的解决方案。 (playGround.begin()必须是playGround [i] .begin()。)再次,非常感谢。 – 2010-11-30 21:14:25

相关问题