第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將2D陣列映射到1D陣列上

將2D陣列映射到1D陣列上

海綿寶寶撒 2019-08-06 15:50:44
將2D陣列映射到1D陣列上我想用一維數(shù)組表示一個(gè)二維數(shù)組。函數(shù)將傳遞兩個(gè)指標(biāo)(x,y)和要存儲(chǔ)的值。這兩個(gè)標(biāo)記代表一維陣列的單個(gè)元素,并相應(yīng)地設(shè)置它。我知道1D數(shù)組需要有arrayWidth×arrayHeight的大小,但我不知道如何設(shè)置每個(gè)元素。例如,我如何區(qū)分(2,4,3)和(4,2,3)?我嘗試將數(shù)組設(shè)置為x * y,但是2 * 4和4 * 2將導(dǎo)致數(shù)組中的相同位置,我需要它們不同。
查看完整描述

3 回答

?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊

將二維數(shù)組索引重新計(jì)算為一維數(shù)組索引的典型公式為

index = indexX * arrayWidth + indexY;

或者你可以使用

index = indexY * arrayHeight + indexX;

(假設(shè)arrayWidth沿X軸測(cè)量,arrayHeight沿Y軸測(cè)量)

當(dāng)然,人們可以提出許多不同的公式來(lái)提供替代的唯一映射,但通常沒(méi)有必要。

在C / C ++語(yǔ)言中,內(nèi)置的多維數(shù)組存儲(chǔ)在內(nèi)存中,以便最后一個(gè)索引的變化速度最快,這意味著對(duì)于聲明為

int xy[10][10];

元素xy[5][3]緊跟xy[5][4]在內(nèi)存中。您可能也想遵循該約定,根據(jù)您認(rèn)為哪個(gè)索引(X或Y)是兩者中的“最后”,選擇上述兩個(gè)公式之一。


查看完整回答
反對(duì) 回復(fù) 2019-08-06
?
冉冉說(shuō)

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊

示例:我們想要表示SIZE_X和SIZE_Y大小的2D數(shù)組。這意味著我們將擁有MAXY連續(xù)的MAXX大小行。因此設(shè)定功能是

void set_array( int x, int y, int val ) { array[ x * SIZE_Y + y ] = val; }

得到的將是:

int get_array( int x, int y ) { return array[ x * SIZE_Y + y ]; }


查看完整回答
反對(duì) 回復(fù) 2019-08-06
  • 3 回答
  • 0 關(guān)注
  • 832 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)