首页 > 解决方案 > C ++中具有可变尺寸的二维数组

问题描述

所以我正在自学 C++,但我对数组有疑问。我知道如果我声明一个二维数组,例如:

char board[8][8];

我创建了一个高度和宽度为 8 的二维数组。但是,我想知道是否有办法将这些维度设置为变量,以便用户可以输入他们想要的高度和宽度,我在 C++ 和 Visual Studio 中尝试过不开心。

int rowSize = 0;  
int colSize = 0;
cin >> rowSize >> colSize;
char board[rowSize][colSize];

谁能帮我?

标签: c++arraysmultidimensional-array

解决方案


由于这带有 标记c++,因此可能std::vector适合您。它很像一个数组,但更方便,更适合这个目的。您可以使用此初始化程序调用简单地初始化嵌套向量的 2D 数组(感谢 Bob__ 提供了这个更简单的解决方案):

int n = 5;
int m = 10;
std::vector<std::vector<char>> board (n, std::vector<char>(m, 'a'));

例如,这将创建板并将所有字段初始化为'a'。您可以使用与 C 样式数组相同的语法访问和操作数据:

char x = board[4][2];
board[3][3] = 'o';

最后但同样重要的是,有许多方便的特性和功能可以让您比使用 C 样式的数组更轻松地进行复制等操作。查看std::string 此处的文档。


推荐阅读