对象向量,删除和放置对象
vector of objects , delete and place objects
我想要一个对象向量的向量,比方说棋子的二维向量 class。
我希望能够针对矢量中的每个位置检查内部是否有棋子 it.Also我想更改它,例如将新的 ChessPiece 对象放置在矢量位置或将其删除但不改变二维向量的大小。
我该怎么办?
我可以用空对象填充二维向量吗?因为一开始我在 board.However 中只有 32/64 个棋子我想要例如 vector<vector<Piece> >[1][0]
从 vector<vector<Piece> >[0][0]
中取出对象然后删除 [=10 的对象=].
好的,如果你还想要一个二维向量,你可以这样做:
vector< vector< ChessPiece* > > board;
int main()
{
board.resize( 8 );
for( int i = 0; i < board.size(); ++i )
{
board[i].resize( 8 );
board[i].assign( 8, NULL );
}
board[0][0] = new ChessPiece();
delete board[0][0];
return 0;
}
你应该像我一样为你的指针分配内存,然后你可以为每个 ceil 分配一个棋子(使用 'new')或删除(使用 'delete')
我想要一个对象向量的向量,比方说棋子的二维向量 class。
我希望能够针对矢量中的每个位置检查内部是否有棋子 it.Also我想更改它,例如将新的 ChessPiece 对象放置在矢量位置或将其删除但不改变二维向量的大小。
我该怎么办?
我可以用空对象填充二维向量吗?因为一开始我在 board.However 中只有 32/64 个棋子我想要例如 vector<vector<Piece> >[1][0]
从 vector<vector<Piece> >[0][0]
中取出对象然后删除 [=10 的对象=].
好的,如果你还想要一个二维向量,你可以这样做:
vector< vector< ChessPiece* > > board;
int main()
{
board.resize( 8 );
for( int i = 0; i < board.size(); ++i )
{
board[i].resize( 8 );
board[i].assign( 8, NULL );
}
board[0][0] = new ChessPiece();
delete board[0][0];
return 0;
}
你应该像我一样为你的指针分配内存,然后你可以为每个 ceil 分配一个棋子(使用 'new')或删除(使用 'delete')