我想創建一個使用來自類A的對象的二維向量,但我得到以下錯誤。使用對象創建二維向量C++
error: no matching function for call 'std::vector<A>::push_back(A*)'
我使用下面的代碼來創建我的向量。我已經使用類似的代碼來創建布爾的2-d向量,只需在下面的代碼中將'A'更改爲'bool'即可。我不知道爲什麼這不起作用。
不工作密碼
std::vector<std::vector<A> > board;
for(int i=0;i<rows;i++)
{
board.push_back(vector<A>()); //insert rows
}
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
board[i].push_back(new A(i,j)); //insert cols and value
}
}
工作代碼
vector<vector<bool> > board;
for(int i=0;i<rows;i++)
{
board.push_back(vector<bool>());
}
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
board[i].push_back(false);
}
}
你爲什麼使用'new'來創建該類的對象?您正試圖將指針推入對象的向量中。 – user463035818
你是認真的!該死..我的大腦剛剛凍結。謝謝 –