是否可以编写一个可以采用n维数组的函数?

kad*_*ina 6 c c++

我正在尝试编写一个函数,它可以成功获取任何维度的数组并在数组中打印值.但我无法前进,因为我们必须在声明函数时声明除最左边的所有维度.我们是否有可能编写一个可以将数组作为任何维度的输入的通用函数?

例如,该函数应该能够采用二维数组或三维数组或n维数组,其中n是任意数.

Jar*_*d42 11

对每个维度和模板使用递归(在C++中使用),以下内容可能有所帮助:

template <typename T>
void print(const T&e)
{
    std::cout << e << " ";
}

template <typename T, std::size_t N>
void print(const T (&a)[N])
{
    std::cout << "{";
    for (const auto& e : a) {
        print(e);
    }
    std::cout << "}" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

用法示例:

int a[2][3][4];
print(a);
Run Code Online (Sandbox Code Playgroud)

实例