[英]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.