集合
MFC 程式庫提供集合類別管理物件群組。 這些類別有兩種類型:
注意
如果您的程式碼已經使用非樣板集合類別,則可以繼續使用它們。 如果您為您的資料類型撰寫新的類型安全集合類別,建議您使用較新的樣板型類別。
集合圖形
集合類別是依其圖形與其項目的類型來區別。 圖形是指依照集合來組織和儲存物件的方式。 MFC 提供三個基本集合圖形:清單、陣列和對應 (也稱為字典)。 您可以選擇最適合您的特定程式設計問題的集合圖形。
本主題稍後將簡短說明所提供三種集合圖形的各個圖形。 若要比較圖形的功能,以協助您決定最適合程式的功能,請參閱 選擇集合類別 的建議。
清單
清單類別提供經過排序非索引式的項目清單,實作為雙向連結串列。 清單中有「開頭」與「結尾」,從開頭或結尾加入或移除項目,或者從中間插入或刪除項目,都非常快速。
陣列
陣列類別提供動態調整大小、經過排序且整數索引式的物件陣列。
對應 (也稱為字典)
對應是將金鑰物件與值物件建立關聯的集合。
以範本為基礎的集合類別
實作包含任何類型物件的類型安全集合的最簡單方法,是使用其中一個 MFC 樣板型類別。 如需這些類別的範例,請參閱 MFC 範例 COLLECT 。
下表列出的是 MFC 樣板型集合類別。
集合樣板類別
集合內容 | 陣列 | 清單 | 地圖 |
---|---|---|---|
任何類型物件的集合 | CArray |
CList |
CMap |
指向任何類型物件的指標集合 | CTypedPtrArray |
CTypedPtrList |
CTypedPtrMap |
集合類別不是以範本為基礎的
如果您的應用程式已經使用 MFC 非樣板類別,可以繼續使用它們。 不過,對於新的集合,建議您使用樣板型類別。 下表列出的不是根據樣板的 MFC 集合類別。
非樣板集合類別
陣列 | 清單 | 地圖 |
---|---|---|
CObArray |
CObList |
CMapPtrToWord |
CByteArray |
CPtrList |
CMapPtrToPtr |
CDWordArray |
CStringList |
CMapStringToOb |
CPtrArray |
CMapStringToPtr |
|
CStringArray |
CMapStringToString |
|
CWordArray |
CMapWordToOb |
|
CUIntArray |
CMapWordToPtr |
選擇集合類別建議中的 MFC 集合類別 資料表特性會根據這些特性來描述 MFC 集合類別(除了圖形以外):
類別會使用 C++ 樣板與否
儲存在集合中的項目是否可序列化
儲存在集合中的項目是否可傾印以進行診斷
集合是否為安全類型