Вектор объектов, удалять и размещать объекты
Я хочу иметь вектор вектора объектов, скажем, двумерный вектор класса chessPiece.
Я хочу, чтобы для каждой позиции в векторе можно было проверить, есть ли шахматная фигура внутри нее. Также я хочу изменить ее, например, поместить новый объект ChessPiece в векторную позицию или удалить его, но без изменения размера элемента. 2D вектор.
Что я должен делать? Могу ли я заполнить 2D-вектор нулевыми объектами? Потому что в начале у меня на доске только 32/64 шахматных фигур. Однако после переезда я хочу, например, vector<vector<Piece> >[1][0]
взять объект из vector<vector<Piece> >[0][0]
а затем удалите объект vector<vector<Piece> >[1][0]
,
1 ответ
Хорошо, если вы все еще хотите 2D вектор, вы можете сделать это так:
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 вы можете выделить шахматную фигуру (используя "новый") или удалить (используя "удалить")