C++ 如何切换到动态阵列?

C++ 如何切换到动态阵列?,c++,C++,我试图将数组的大小设置为程序接收的输入,当前数组的大小定义为常量static int 董事会 #包括 使用名称空间std; 班级委员会{ 私人: const static int BOARDSIZE=5; 字符板[BOARDSIZE][BOARDSIZE]; 常量字符p1Symbol='R'; 常量字符p2Symbol='B'; const char trail='O'; 常量字符崩溃=“*”; int p1Row; int-p1Col; int p2Row; int p2Col; 公众: vo

我试图将数组的大小设置为程序接收的输入,当前数组的大小定义为
常量static int

董事会

#包括
使用名称空间std;
班级委员会{
私人:
const static int BOARDSIZE=5;
字符板[BOARDSIZE][BOARDSIZE];
常量字符p1Symbol='R';
常量字符p2Symbol='B';
const char trail='O';
常量字符崩溃=“*”;
int p1Row;
int-p1Col;
int p2Row;
int p2Col;
公众:
void setBoardSize(整数大小);
bool isValidMove(整数行,整数列);
bool isValidInput(字符输入);
bool getNextMove();
void initializeArray();
void draw水平分隔符();
void drawSeparatedValues(int行);
无效显示板();
};
主要

#包括
#包括“Board.h”
使用名称空间std;
int main(){
整数大小;
cout大小;
董事会b;
b、 setBoardSize(尺寸);
b、 初始化array();
b、 显示板();
bool done=false;
而(!完成){
done=b.getNextMove();
}
返回0;
}

我正在尝试使用名为
setBoardSize
的函数来更改
board.H
文件中板的大小。我尝试过删除
const static
,但随后出现了各种各样的错误。显然,不可能定义没有预定义大小的数组?

而不是
char board[BOARDSIZE][BOARDSIZE]
转到
std::vector(BOARDSIZE*BOARDSIZE,0)
并将元素访问为
vector[y*BOARDSIZE+x]
其中x和y在良好的建议范围内运行。一个小小的改进是将向量包装在一个数据结构中,使其看起来像二维的,这样您就不会在一个位置意外地搞乱索引,而不会到处搞乱。如果不允许您使用标准库容器执行此任务,我建议您在问题中澄清这一事实。如果您不这样做,您将只使用库容器收到答案,因为这是最明智的方法。如果您坚持使用二维索引,请使用
std::vector
(如果您乐意使用一维索引)或
std::vector
。这两种方法都有效,因为
std::vector
是指定类型的(模板化)可调整大小的容器,并且可以包含其他可调整大小的容器。