繁体   English   中英

返回多维数组C ++

[英]Returning multidimensional array c++

我想创建一个返回C样式多维数组的函数
int mArray[2][2]; int[][] mArray getArray();

所以这行不通,我也不知道为什么。 任何帮助,将不胜感激。

来自[dcl.funct]:

函数不得具有数组或函数的返回类型 ,尽管它们可以具有指针或此类对象的引用的返回类型。 尽管可以有指向函数的指针数组,但不应有函数数组。

但是,您可以改为返回std::array

std::array<std::array<int, 2>, 2> getArray();

您不能按值返回数组,因为它们不会隐式复制(并且因为标准如此)。 您应该改用std::array

std::array<std::array<int,2>,2> fun();
std::array<std::array<int,2>,2> arr = fun();

如今,在std::array上使用C数组的理由不多,最常见的原因可能是“因为我的老师/教授/老板这样说”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM