【问题标题】:How to initialize 2d array using 1d arrays in C++如何在 C++ 中使用一维数组初始化二维数组
【发布时间】:2021-03-21 00:32:14
【问题描述】:

我有以下代码

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++ 数组怎么样:std::array?我们在 2021 年使用 C++20,而人们仍在使用 C 数组。

标签: c++ arrays multidimensional-array


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    相关资源
    最近更新 更多