Joh*_*orn -2 c++ arrays initialization matrix c++11
如何用std::array?初始化数组?我的解决方案是
array<array<int, sze>, sze> arcpp { 0, 1, 2, 3 , 4, 5, 6, 7, 8, 9, 10, 11 ,12, 13, 14, 15 };
for (auto i = 0; i < sze; i++) {
cout << "\n";
for (auto j = 0; j < sze; j++) {
cout << "\t" << arcpp[i][j];
}
}
Run Code Online (Sandbox Code Playgroud)
但我想要这样的事情:
int matrix[][sze] = {
{0, 1, 2, 3},
{4, 5, 6, 7},
{8, 9, 10, 11},
{12, 13, 14, 15}
};
Run Code Online (Sandbox Code Playgroud)
std::array 包含一个内部原始数组,
此容器是一种聚合类型,其语义与包含C样式数组
T[N]作为其唯一非静态数据成员的结构相同.......作为聚合类型,可以使用最多N个初始化程序给出的聚合初始化来初始化它,这些初始化程序可以转换为T :std::array<int, 3> a = {1,2,3};.
所以你需要添加额外的大括号来聚合初始化内部数组std::array,例如
array<array<int, sze>, sze> arcpp = {{
{0, 1, 2, 3},
{4, 5, 6, 7},
{8, 9, 10, 11},
{12, 13, 14, 15}
}};
Run Code Online (Sandbox Code Playgroud)
顺便说一句:您的解决方案发挥作用是因为撑省音.
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |