c 如何自定義乙個返回二維陣列的函式而不是首位址?

時間 2021-05-30 12:56:53

1樓:

如果你說的是內建陣列,那是不可以的。但是,如果你願意可以使用C++11標準模板庫裡面的array,封裝成了模板類,提供了拷貝建構函式,可以直接返回乙個array。

2樓:旺旺

C++語言標準裡面倒是真寫了函式不能返回陣列,在2003版標準裡沒看到相關論述,在2011版標準裡面看到了,函式不能返回陣列,但可以返回對陣列的引用。比如:

intgdata[2

][3];typedef

intIA[2

][3];IA

&func

(inta,

intb=0

)我本來想找找為什麼不能按值返回陣列,明明都能返回陣列引用了,返回陣列應該也沒什麼難度呀,而且比陣列更複雜的結構體也都可以按值語義返回,那到底是為什麼陣列就不行呢?

結果標準裡面也沒有細說,

在網上找到的唯一乙個像解釋的話就是:因為歷史原因,陣列不能被直接拷貝,所以無論是引數還是返回值,都是以指標的方式來傳遞的……

3樓:Milo Yip

不可以。只能用 struct/class 包裝,或是使用C++11的std::array。

#include

using

namespace

std;

struct

Matrix

;Matrix

Identity(),

}};returnm;

}int

main

()--------

更新:C++11的std::array

#include

#include

using

namespace

std;

using

Matrix

=std

::array

array

>,2>;Matrix

Identity(),

}};returnm;

}int

main()

如何新增乙個自定義成就到我的世界

MC Extreme 1.12和之前的版本加Mod可以實現自定義成就1.13和後面的版本既可以加Mod,也可以加資料報來實現自定義成就或者參考這個這裡 https 羅夜 1.12以前多是mod新增,在1.13之後麻將新增了資料報功能,可以理解為官方的api。相比其他api,官方的api更適合沒有語言...

python二維陣列如何挑選出一定範圍的數值

lbaby reduce lambda ra,a ra filter lambda x 10 x 15 a arr,13.1,13.2,13.3,13.4,13.5,12.5,13.2,14.2 reduce lambda a1,a2 a1 a2,map lambda a filter lambda...

如何不用迴圈將乙個二維陣列的第一行第一列賦值為0?

穀雨同學 不用迴圈就用遞迴唄。include template T struct getD template size ttN,std size ttM,typename T struct getD static constexpr std size tM template T constexpr ...