我在类中有这个数组,我需要为其分配 9*9 数字矩阵。
class puzzle{
int gme[9][9];
}
我知道不可能在 C++ 中使用钎焊封闭的初始化来分配数组:在这个问题中提到:c++ array assignment of multiple values
可以使用 std::copy(newgme, newgme + 3, gme); 并分配数组。
我不想这样做,因为我们需要在类外部分配数组 newgme
并将其作为参数传递给成员函数。
类中多个值的数组赋值:哪一个是最佳实践?
我想在不使用向量
的情况下将值设置为这些:
0,0,7 ,0,0,0 ,4,0,6,
8,0,0 ,4,0,0 ,1,7,0,
0,0,0 ,3,0,0 ,9,0,5,
0,0,0 ,7,0,5 ,0,0,8,
0,0,0 ,0,0,0 ,0,0,0,
4,0,0 ,2,0,8 ,0,0,0,
7,0,4 ,0,0,3 ,0,0,0,
0,5,2 ,0,0,1 ,0,0,9,
1,0,8 ,0,0,0 ,6,0,0
最佳答案
不幸的是,std::copy
不起作用,因为嵌套数组 int[9]
本身是不可赋值的。有些人可能建议将多维数组别名为 int[81]
但这是未定义的行为。
你最好的选择可能是使用嵌套 std::array
:
std::array<std::array<int, 9>, 9> gme;
future 版本的 C++ 可能具有多维数组类型。
另一个选项是 Boost.MultiArray ,尽管它具有动态范围(因此使用动态内存分配)。
关于class - 类中多个值的数组赋值 : Best practice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22102891/