首页 > 解决方案 > 如何在 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[][]使用四个一维数组进行定义?

标签: c++arraysmultidimensional-array

解决方案


您可以使用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';
    }
}

推荐阅读