在2D指针向量中插入列的正确方法是什么?

时间:2010-11-30 21:00:05

标签: c++

我正在使用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()的第二个参数究竟需要什么才能解决这个问题?我在谷歌上四处寻找,但我似乎找不到合适的答案。

提前多多感谢。

1 个答案:

答案 0 :(得分:3)

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

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

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

-matt