mfc中數(shù)組類的使用分析

ID:6579065

大?。?1.00 KB

頁數(shù):5頁

時間:2018-01-18

mfc中數(shù)組類的使用分析_第1頁
mfc中數(shù)組類的使用分析_第2頁
mfc中數(shù)組類的使用分析_第3頁
mfc中數(shù)組類的使用分析_第4頁
mfc中數(shù)組類的使用分析_第5頁
資源描述:

《mfc中數(shù)組類的使用分析》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、MFC中數(shù)組類的使用分析作者:佚名來源:不詳更新時間:2007-3-2516:49:45等級:?MFC的數(shù)組類支持的數(shù)組類似于C++中的常規(guī)數(shù)組,可以存放任何數(shù)據(jù)類型。C++的常規(guī)數(shù)組在使用前必須將其定義成能夠容納所有可能需要的元素,而MFC數(shù)組類創(chuàng)建的對象可以根據(jù)需要動態(tài)地增大或減小,數(shù)組的起始下標(biāo)是0,而上限可以是固定的,也可以隨著元素的增加而增加,數(shù)組在內(nèi)存中的地址仍然是連續(xù)分配的?! FC定義了數(shù)組模板類CArray,并針對各種常用變量類型定義了CByteArray,CWordArray,CUIntArray,CDWordArray,CStringArray,CObArray,CP

2、trArray。詳見下表:數(shù)組類變量類型變量數(shù)值范圍頭文件CArray通過模板類的參數(shù)類型設(shè)定各種類型?Afxtempl.hCByteArray8位無符號整數(shù)BYTE類型0—255Afxcoll.hCWordArray16位無符號整數(shù)WORD類型0—65535Afxcoll.hCDWordArray32位無符號整數(shù)DWORD類型0—4294967295Afxcoll.hCUIntArray32位無符號整數(shù)UINT類型0—4294967295Afxcoll.hCStringArrayCString字符串string字符串?Afxcoll.hCObArrayCObject類及其派生類?Afxco

3、ll.hCPtrArrayvoid*類型指針?Afxcoll.h  MFC數(shù)組類使用方法基本相同,下面分別以CArray和CUIntArray為例演示說明數(shù)組類的使用方法。  使用CArray  打開VC++6.0,創(chuàng)建基于對話框的工程Array。CArrayDlg類聲明文件(ArrayDlg.h)中添加語句:#include  請記住:使用CArray一定要包含頭文件afxtempl.h。  打開主對話框資源IDD_ARRAY_DIALOG,添加一個按鈕IDC_ARRAY_CPOINT,標(biāo)題為CArray_CPoint,雙擊該按鈕,在OnArrayCpoint()函

4、數(shù)中添加如下代碼:voidCArrayDlg::OnArrayCpoint(){ CArraym_Array; m_Array.SetSize(10,10); CPointpt1(10,10); m_Array.Add(pt1); CPointpt2(10,50); m_Array.Add(pt2); CPointpt3(10,100); m_Array.Add(pt3); intsize=m_Array.GetSize(); CClientDCdc(this); dc.MoveTo(0,0); CPointpt; for(inti=0;i

5、 {  pt=m_Array.GetAt(i);  dc.LineTo(pt); }}  代碼簡要說明:CArraym_Array;  該語句定義一個CArray數(shù)組對象,模板類CArray有兩個參數(shù),第一個參數(shù)為數(shù)組元素的類型,該例中是CPoint,即m_Array是CPoint數(shù)組;第二個參數(shù)為引用類型,一般有兩種選擇,一種選擇與第一個參數(shù)類型相同,它意味著數(shù)組對象作為參數(shù)傳遞時,傳遞的是數(shù)組對象。第二種選擇是第一個參數(shù)類型的引用,它意味著數(shù)組對象作為參數(shù)傳遞時,傳遞的是數(shù)組對象的指針。因此,尤其對于較復(fù)雜的數(shù)組結(jié)構(gòu)類型,推薦使用引用傳遞,節(jié)約內(nèi)存同時加快

6、程序運(yùn)行速度,正如本例使用的是CPoint&。m_Array.SetSize(10,10);  SetSize函數(shù)設(shè)定數(shù)組的大小,該函數(shù)有兩個參數(shù),第一個參數(shù)設(shè)定數(shù)組的大小;第二個參數(shù)設(shè)定數(shù)組增長時內(nèi)存分配的大小,缺省值是-1,使用缺省值可以保證內(nèi)存分配得更加合理。本例中第二個參數(shù)是10,意即增加一個數(shù)組元素會分配10個元素大小的內(nèi)存供數(shù)組使用?! ∧梢噪S時使用SetSize函數(shù)設(shè)定數(shù)組的大小,如果第一個參數(shù)值小于數(shù)組已有成員數(shù)量,多于第一個參數(shù)值的成員將被截去并釋放相應(yīng)內(nèi)存?! ≡谑褂肅Array數(shù)組前,最好先使用SetSize確定其大小并申請存儲空間。如果不這樣做,向數(shù)組中增加元素時,

7、需要不斷地移動和拷貝元素造成運(yùn)行的低效率和內(nèi)存碎塊。m_Array.Add(pt1);  Add函數(shù)添加數(shù)組元素。intsize=m_Array.GetSize();  GetSize返回數(shù)組元素的數(shù)目。for(inti=0;i

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。
关闭