複製鏈接
請複製以下鏈接發送給好友

CByteArray

鎖定
CByteArray是MFC中BYTE一種集合類,用於申明CByteArray類的數據,並且用相關函數對其進行處理。該類是8位無符號整數 BYTE類型,範圍0—255,頭文件是Afxcoll.h。
類CByteArray支持以字節為單位動態建立數組
中文名
CByteArray
單    位
字節為單位
方    式
建立數組
公    式
CObject* CObArray

CByteArray數據成員

類CByteArray支持以字節為單位動態建立數組
類CByteArray的成員函數與類CObArray的成員函數類似。因此,也可以參考類CObArray的文檔。只需把函數參數或返回值中出現的CObject指針換成BYTE就可以了。例如,類CObArray中的函數:
CObject* CObArray::GetAt( int ) const;
在類CByteArray中對應的就是
BYTE* CByteArray::GetAt( int ) const;
CByteArray中包含了宏IMPLEMENT_SERIAL,以支持對象的串行化和轉儲。如果字節數組被存到了檔案中,不管使用覆蓋的操作符“<<”或成員函數Serialize,則其中的元素被串行化
注意:
在使用數組之前,要調用SetSize設置它的大小並分配內存。如果沒有使用SetSize,在數組中增加元素會引起數組內存空間頻繁的重新分配以及數據拷貝。內存頻繁的重新分配和數據拷貝會影響性能並造成內存碎片
如果需要對數組中每個元素的輸出調試信息,就要把CDumpContext對象的深度設置為1或更大。

CByteArray函數成員

CByteArray構造函數

CByteArray構造一個空的字節數組

CByteArray邊界

GetSize取數組中元素的個數(數組大小)
GetUpperBound返回數組的最大有效下標
SetSize設置數組元素的個數(數組大小)

CByteArray操作

FreeExtra釋放數組中當前已有數據的最大上界後所有未佔用的內存
RemoveAll刪除數組中所有的元素

CByteArray元素存取

GetAt返回指定下標處的數組元素的值
SetAt給數組中指定下標的元素賦值,但不能動態增長數組(指定的下標不能越界)
ElementAt返回對數組中某個字節的臨時參考
GetData允許訪問數組中的元素。可以為NULL

CByteArray數組增長

SetAtGrow給數組中指定下標的元素賦值,在下標越界時動態增長數組Add在數組末尾增添一個元素,必要時增長數組Append在數組末尾接上另一個數組,必要時增長數組
Copy把另一個數組的內容拷貝到本數組,必要時增長數組

CByteArray插入 刪除

InsertAt在指定的下標處插入元素(或另外一個數組的內容)
RemoveAt刪除指定下標處的一個元素
操作符operator[]取指定下標處元素的值,或者給其賦值