我正在使用2D阵列作为我正在制作的棋盘游戏的棋盘。成员是指向“Tile”类型对象的指针。索引是x和y,分别表示水平和垂直位置。 在Board类中,它看起来像这样。
vector<vector<Tile*> > playGround;
问题在于,随着游戏的进行,瓷砖被添加到playGround中,并且在新瓷砖的位置需要时,矢量必须能够展开。我一直在尝试在顶部添加行,并在左侧添加列。我试过使用insert()函数,这就是我的问题所在。
现在我的代码看起来像这样:
void Board::addRowTop()
{
Tile* t;
int i = 0;
maxY++;
for ( ; i < maxX ; i++ )
playGround[i].insert(0, t);
}
不要介意maxX和maxY变量;它们与手头的主题无关。问题是:insert(0,t)显然不起作用,因为“t”不是函数所期望的数据类型。
我的问题很简单:insert()的第二个参数究竟需要什么才能解决这个问题?我在谷歌上四处寻找,但我似乎找不到合适的答案。
提前多多感谢。
答案 0 :(得分:3)
我不认为导致该功能的't'参数:playGround [i]是std::vector<Tile *>
,所以你应该可以插入Tile * s(虽然请告诉我你首先初始化't' - 至少是NULL或0!)。
问题是insert的第一个参数必须是迭代器。尝试:
playGround[i].insert(playGround[i].begin(), t);
-matt