c++ - 如何在 C++ 中使用一维数组初始化二维数组
问题描述
我有以下代码
int vertical[] = {0, 1};
int horizontal[] = {1, 0};
int diag1[] = {1, 1}, diag2[] = {1, -1};
int directions[][] = {vertical, horizontal, diag1, diag2};
这在第 5 行给了我以下错误:
Array has incomplete element type 'int []'
因此,我坚持做以下事情:
int directions[4][2] = {{0,1},{1,0},{1,1},{1,-1}};
如何directions[][]
使用四个一维数组进行定义?
解决方案
您可以使用std::array
#include <array>
#include <iostream>
int main() {
std::array vertical {0, 1};
std::array horizontal {1, 0};
std::array diag1 {1, 1}, diag2 {1, -1};
std::array directions {vertical, horizontal, diag1, diag2};
for (const auto dir : directions) {
for (const auto val : dir) {
std::cout << val << ' ';
}
std::cout << '\n';
}
}