Microsoft Foundation Class Library 提供集合類別來管理物件的群組。 這些類別有兩種類型:
備註
如果您的程式代碼已經使用非範本集合類別,您可以繼續使用它們。 如果您為自己的數據類型撰寫新的類型安全集合類別,建議您使用較新的範本型類別。
集合圖形
集合類別的特點是其「形狀」和其元素的類型。 圖形是指物件由集合組織及儲存的方式。 MFC 提供三個基本集合圖形:清單、陣列和地圖(也稱為字典)。 您可以挑選最適合您特定程式設計問題的集合圖形。
本主題稍後會簡短說明這三個提供的集合圖形。 若要比較圖形的功能,以協助您決定最適合程式的功能,請參閱 選擇集合類別的建議。
清單
list 類別會提供一個有序但未索引的元素清單,實作為一個雙向鏈結串列。 清單具有「前端」和「尾端」,以及從前端或尾端新增或移除元素,或在中間插入或刪除元素的速度非常快。
陣列
陣列類別提供物件的動態大小、排序和整數索引陣列。
地圖 (也稱為字典)
映射是一個集合,可將索引鍵物件與值物件產生關聯。
Template-Based 集合類別
實作包含任何型別物件的型別安全集合最簡單的方式,就是使用其中一個 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 集合類別,以這些特性來描述 MFC 集合類別(除了圖形以外):
類別是否使用C++範本
儲存在集合中的元素是否可以序列化
是否可以匯出儲存在集合中的元素以進行診斷
集合是否為類型安全