我在课堂上有Sub FormatSlideMasterFooter()
ActivePresentation.SlideMaster.HeadersFooters.Footer.Text = Format(Now(), "yyyy") & " L" & Int(Month(Now()) / 4) + 1
End Sub
个变量:
const int
在我的构造函数中,我设置了变量,我想创建一个具有这个大小的2D数组,它将通过播放器的值传递。我正在尝试制作TicTacToe游戏。我需要用户的输入来确定比赛场地的大小(在这种情况下是它的宽度和高度)。如何在我的情况下动态声明2D数组?
答案 0 :(得分:1)
一种常见的误解是二维矩阵应该由二维存储支持。人们经常尝试使用向量或其他技术的向量,这需要付出代价,包括性能和代码可维护性。
这不是必需的。实际上,完美的二维矩阵是单个std::vector
,其中每一行都是一个接一个地打包。这种矢量具有M * N的大小,其中M和N是矩阵的高度和宽度。要访问位置X,Y处的元素,请执行v [K],其中K计算为X * N + Y.
答案 1 :(得分:0)
C ++没有提供标准的动态2D数组容器。
您可以执行的操作(如果您不想编写自己的完整实现),请使用std::vector
代替std::vector
。
它不完全相同(为您提供额外的自由度:行可以具有不同的长度)但除非您在极其受限的环境中工作(或需要极其优化的解决方案) )额外的成本并不大。
假设您的元素需要是整数,那么初始化2d数组的代码可以是:
std::vector<std::vector<int>> board(rows, std::vector<int>(cols));
PS:几年前我在这里写了一个类来实现一个简单的2D数组作为SO问题的答案......你可以找到它here。