2010-11-30 36 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

相關問題