共用方式為


CArray 類別

就像 C 陣列的陣列支援,不過,可動態地減少並視需要增加。

template < class TYPE, class ARG_TYPE = const TYPE& > 
class CArray : 
   public CObject

參數

  • TYPE
    指定物件類型的範本參數陣列中儲存的值。 TYPE 由 CArray傳回的參數。

  • ARG*_*TYPE
    指定引數型別用於存取物件中的樣板參數陣列中儲存的值。 通常會 TYPE的參考。 ARG_TYPE 是傳遞給 CArray的參數。

Members

4h2f09ct.collapse_all(zh-tw,VS.110).gif公用建構函式

名稱

描述

CArray::CArray

建構空白陣列。

4h2f09ct.collapse_all(zh-tw,VS.110).gif公用方法

名稱

描述

CArray::Add

將項目加入至陣列結尾;如果需要,擴大陣列。

CArray::Append

附加另一個陣列的陣列;如果需要,擴大陣列

CArray::Copy

複製到另一個陣列的陣列;如果需要,擴大陣列。

CArray::ElementAt

傳回項目指標的暫存參考在陣列中。

CArray::FreeExtra

釋放在目前的上限 (Upper Bound) 上的所有未使用的記憶體。

CArray::GetAt

傳回值是在指定的索引。

CArray::GetCount

取得項目的參數數目等於陣列中的。

CArray::GetData

允許存取項目的存取陣列中。 可以是 NULL

CArray::GetSize

取得項目的參數數目等於陣列中的。

CArray::GetUpperBound

會傳回最大的有效索引。

CArray::InsertAt

插入項目 (或另一個檔案中的所有元素的陣列) 中的指定索引。

CArray::IsEmpty

判斷陣列是否是空的。

CArray::RemoveAll

從陣列中移除所有項目。

CArray::RemoveAt

移除項目中的特定索引處。

CArray::SetAt

設定指定之索引的值;不允許的陣列成長。

CArray::SetAtGrow

設定指定之索引的值;如果需要,擴大陣列。

CArray::SetSize

將陣列中的元素數目。

4h2f09ct.collapse_all(zh-tw,VS.110).gif公用運算子

名稱

描述

CArray::operator []

設定或取得這個項目在指定之索引處的。

備註

陣列索引永遠從位置 0 開始。 當您將傳遞目前繫結的項目時,您可以決定是否修正此上限或讓陣列展開。 記憶體連續配置給這個上限,,即使有些項目是空的。

注意事項注意事項

調整大小 CArray 物件或將項目加入至使用 memcpy_s 至移動項目的方法。這會造成問題,因為 memcpy_s 與需要建構函式呼叫的任何物件相容。如果在 CArray 的項目與 memcpy_s相容,您必須建立適當大小的新 CArray 。因為這些方法會使用一個指派運算子 (而不是 memcpy_s,您必須使用 CArray::CopyCArray::SetAt 填入新陣列。

與 C 語言 . 陣列, CArray 索引項目的存取時間是常數也是陣列大小無關。

提示

在使用陣列,請使用 SetSize 建立控制項的大小和配置其記憶體。如果您不使用 SetSize,將項目加入至陣列會經常被重新配置和複製。經常重新配置和複製沒有效率,而且可能分段記憶體。

如果您在陣列需要個別項目傾印,您必須設定 CDumpContext 物件的深度為 1 或更大。

這個類別的某些成員函式的呼叫必須自訂為 CArray 的大部分類別會使用全域的 Helper 函式。 請參閱在 MFC 巨集和全域章節中的主題 集合類別 Helper

陣列類似類別的衍生清單衍生。

如需如何使用 CArray的詳細資訊,請參閱本文 集合

繼承階層架構

CObject

CArray

需求

Header: afxtempl.h

請參閱

參考

CObject 類別

階層架構圖

使用 CObArray 類別

概念

MFC 範例收集

其他資源

集合類別的協助程式