首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >多维阵列c++

多维阵列c++
EN

Stack Overflow用户
提问于 2012-01-17 22:12:28
回答 2查看 478关注 0票数 0

可能重复:

Multi-dimensional array in C++

我需要创建一个函数,其中有一个参数,它是一个多维数组,二维是用户指定的。

代码语言:javascript
代码运行次数:0
运行
复制
    int function(int a, int b, int array[a][b])
    {
     ...

    }

我如何在C++中做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2012-01-17 22:15:56

您可以使用模板执行这样的操作:

代码语言:javascript
代码运行次数:0
运行
复制
template <int A, int B>
int function(int array[A][B])
{
 ...
}

请注意,这将为您使用的每个数组大小生成一个代码块。您可以通过将外部维度传递为函数参数而不是模板参数来稍微优化(您不能更改内部维度,因为您不能拥有一个大小未知的数组)。

编辑:正如在重复错误上指出的,我的模板数组语法出错了。

票数 2
EN

Stack Overflow用户

发布于 2012-01-17 22:13:23

你必须用参数传递尺寸。

int function(int a, int b, int array[][])

在C++中没有length()方法或类似的方法。如果您传递一个数组,它只是一个链接到那个。这和int function(int a, int b, int** array)一样

编辑:

请注意,如果您使用的是方括号,而不是星号,则必须给出除第一个维度之外所有维度的大小。实际上,您正在传递数组,编译器必须知道每个数组的大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8902461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档