CArray 類別
就像 C 陣列的陣列支援,不過,可動態地減少並視需要增加。
template < class TYPE, class ARG_TYPE = const TYPE& >
class CArray :
public CObject
參數
TYPE
指定物件類型的範本參數陣列中儲存的值。 TYPE 由 CArray傳回的參數。ARG _ TYPE
指定引數型別用於存取物件中的樣板參數陣列中儲存的值。 通常會 TYPE的參考。 ARG_TYPE 是傳遞給 CArray的參數。
Members
公用建構函式
名稱 |
描述 |
---|---|
建構空白陣列。 |
公用方法
名稱 |
描述 |
---|---|
將項目加入至陣列結尾;如果需要,擴大陣列。 |
|
附加另一個陣列的陣列;如果需要,擴大陣列 |
|
複製到另一個陣列的陣列;如果需要,擴大陣列。 |
|
傳回項目指標的暫存參考在陣列中。 |
|
釋放在目前的上限 (Upper Bound) 上的所有未使用的記憶體。 |
|
傳回值是在指定的索引。 |
|
取得項目的參數數目等於陣列中的。 |
|
允許存取項目的存取陣列中。 可以是 NULL。 |
|
取得項目的參數數目等於陣列中的。 |
|
會傳回最大的有效索引。 |
|
插入項目 (或另一個檔案中的所有元素的陣列) 中的指定索引。 |
|
判斷陣列是否是空的。 |
|
從陣列中移除所有項目。 |
|
移除項目中的特定索引處。 |
|
設定指定之索引的值;不允許的陣列成長。 |
|
設定指定之索引的值;如果需要,擴大陣列。 |
|
將陣列中的元素數目。 |
公用運算子
名稱 |
描述 |
---|---|
設定或取得這個項目在指定之索引處的。 |
備註
陣列索引永遠從位置 0 開始。 當您將傳遞目前繫結的項目時,您可以決定是否修正此上限或讓陣列展開。 記憶體連續配置給這個上限,,即使有些項目是空的。
注意事項 |
---|
調整大小 CArray 物件或將項目加入至使用 memcpy_s 至移動項目的方法。這會造成問題,因為 memcpy_s 與需要建構函式呼叫的任何物件相容。如果在 CArray 的項目與 memcpy_s相容,您必須建立適當大小的新 CArray 。因為這些方法會使用一個指派運算子 (而不是 memcpy_s,您必須使用 CArray::Copy 和 CArray::SetAt 填入新陣列。 |
與 C 語言 . 陣列, CArray 索引項目的存取時間是常數也是陣列大小無關。
提示
在使用陣列,請使用 SetSize 建立控制項的大小和配置其記憶體。如果您不使用 SetSize,將項目加入至陣列會經常被重新配置和複製。經常重新配置和複製沒有效率,而且可能分段記憶體。
如果您在陣列需要個別項目傾印,您必須設定 CDumpContext 物件的深度為 1 或更大。
這個類別的某些成員函式的呼叫必須自訂為 CArray 的大部分類別會使用全域的 Helper 函式。 請參閱在 MFC 巨集和全域章節中的主題 集合類別 Helper 。
陣列類似類別的衍生清單衍生。
如需如何使用 CArray的詳細資訊,請參閱本文 集合。
繼承階層架構
CArray
需求
Header: afxtempl.h