最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

第 21 講:數(shù)組(三):混合數(shù)組

2021-04-04 08:52 作者:SunnieShine  | 我要投稿

前文我們了解了一種可拆分的數(shù)組類型:鋸齒數(shù)組。今天我們學(xué)習(xí)的是一種稍微難一點(diǎn)的概念:混合數(shù)組(Mixed Array)?;旌蠑?shù)組是將前面兩種數(shù)組模型混用,產(chǎn)生的新的數(shù)組類型。千萬(wàn)別走神,接下來(lái)我們來(lái)理解一下混合數(shù)組的邏輯。

整個(gè)這一節(jié)的內(nèi)容的難度都偏大,按需學(xué)習(xí)。不必掌握它們,但用到的時(shí)候,你可以再回來(lái)看。

Part 1 鋸齒二維數(shù)組里反人類的理解邏輯

既然前面介紹過(guò)鋸齒的一維數(shù)組,那么必然就存在鋸齒二維數(shù)組。那么,鋸齒二維數(shù)組是什么樣的呢?

當(dāng)然,聲明大小的時(shí)候,我們可以省略大小。比如例子里 new int[2][,] 里的 2、new int[2, 3] 里的 2 和 3,還有 new int[4, 5] 里的 4 和 5,都是可以不寫(xiě)的。

不過(guò),你可以看出來(lái),這種寫(xiě)法確實(shí)有點(diǎn)古怪。明明是一個(gè)鋸齒二維數(shù)組,結(jié)果卻是“由若干不同的二維數(shù)組構(gòu)成的大的一維數(shù)組”。這正是混合數(shù)組里最難搞定的地方。在鋸齒一維數(shù)組里,我們將 int[][] 理解為“整個(gè)數(shù)組是一個(gè)大的 [],每一個(gè)元素都是 [] 的類型”;而這里也是一樣:int[][,] 理解成“整個(gè)數(shù)組是一個(gè)大的 [],而每一個(gè)元素都是 [,] 的類型”。顯然,[] 表示一個(gè)一維數(shù)組,而 [,] 則表示一個(gè)二維數(shù)組,所以 int[][,] 就是在說(shuō),整體是一個(gè)一維數(shù)組,而每一個(gè)元素都是一個(gè)二維數(shù)組,元素類型由 int 的實(shí)體構(gòu)成。

當(dāng)然,這類數(shù)組取值也是和標(biāo)記 [][,] 是一樣的:

我指的是,取值的中括號(hào)書(shū)寫(xiě)風(fēng)格是和聲明語(yǔ)句里的 [][,] 標(biāo)記是一樣的。這里 arr[1][2, 3] 表示取 arr 里第二個(gè)元素(即第二個(gè)子數(shù)組,就是這個(gè) 20 個(gè)元素構(gòu)成的數(shù)組);然后取這個(gè)數(shù)組里的第 3 行第 4 列的元素。那么顯然結(jié)果就是 19 了。

盡管有點(diǎn)麻煩,你依然要明白,數(shù)組這一點(diǎn)比較嚴(yán)謹(jǐn)?shù)谋磉_(dá)邏輯。

Part 2 二維鋸齒數(shù)組

如果記號(hào) [][,] 反過(guò)來(lái)呢?[,][] 又能表達(dá)什么呢?

看這個(gè)例子。這個(gè)例子告訴你,實(shí)際上整個(gè)數(shù)組類型 int[,][] 想表示一個(gè)二維數(shù)組,只是下面的每一個(gè)元素都是一個(gè)一維數(shù)組類型的實(shí)體。和前面的理解方式完全類似:int[][,] 理解成“int 元素、大數(shù)組是 [] 類型,每一個(gè)元素都是一個(gè) [,]”。這里 int[,][] 就可以理解成“int 元素、大數(shù)組是 [,] 類型,每一個(gè)元素都是一個(gè) []”。

我不是很想要提名字。前面那種叫鋸齒二維數(shù)組,而這個(gè)叫二維鋸齒數(shù)組。注意名字的順序。將“二維”放在前面和放在后面是不一樣的:二維鋸齒數(shù)組是在說(shuō),數(shù)組本身就是二維的,只是元素是鋸齒數(shù)組;而“鋸齒”放在前面,則在說(shuō)明數(shù)組本身是鋸齒的數(shù)組,只是數(shù)組的元素類型并不是等大小的一維數(shù)組了,而是二維數(shù)組。

Part 3 我就要搞事情

簡(jiǎn)單看個(gè)例子就可以了。

然后自己想想 int[,][][] 啊、int[][,][] 啊、int[][][,] 都是些啥玩意兒。反正我們也用不上。

Part 4 混合數(shù)組的遍歷

混合數(shù)組的遍歷,一旦搞清楚層次關(guān)系和邏輯的時(shí)候,我們就可以直接開(kāi)始遍歷了。我們拿基礎(chǔ)的鋸齒二維數(shù)組來(lái)遍歷:

顯然,一旦清楚邏輯后,我們就可以遍歷它們了:

再?gòu)?fù)雜一點(diǎn):

再?gòu)?fù)雜一點(diǎn):

再?gòu)?fù)雜一點(diǎn):


第 21 講:數(shù)組(三):混合數(shù)組的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
邓州市| 马边| 上思县| 封丘县| 巴马| 上林县| 宜川县| 四子王旗| 华宁县| 炉霍县| 乌拉特中旗| 五大连池市| 岐山县| 德庆县| 巫溪县| 中超| 炉霍县| 普安县| 凭祥市| 鄯善县| 柏乡县| 古田县| 宁城县| 大城县| 赫章县| 青冈县| 贵南县| 柘荣县| 岳阳市| 武邑县| 岳阳县| 南木林县| 凤阳县| 嘉峪关市| 寿光市| 阳曲县| 白山市| 平昌县| 廊坊市| 尤溪县| 双柏县|