集合

Microsoft 基础类 (MFC) 库提供集合类管理对象组成的组。 这些类包括两种类型:

  • 从 C++ 模板的集合类创建

  • 集合类不从模板创建

备注

如果代码已使用个集合类,则可以继续使用它们。如果在编写新类型安全"的集合类提供自己的数据类型,但我们推荐使用较新的基于模板的类。

集合形状

集合类加上其“shape”和通过其元素类型。 形状引用对象由集合组织并存储的情况下。 MFC 提供三个简单的集合形态:列表、数组以及映射字典 (也称为)。 可以选取最适合于特定编程问题的集合形态。

三提供的集合形态每个本主题后面简要介绍。 若要比较形状的功能帮助您确定要对程序是最好,请参见 关于选择集合类的建议

  • List

    列表类提供元素的排序,为列表,实现为双向链接列表。 列表具有“头”,而且“尾”,并添加或移除元素。开头或末尾或插入或删除元素在中间,非常快。

  • 数组

    数组类提供动态调整大小中,排序和整数索引的数组对象。

  • 映射 (也是一个字典)

    映射是与的主要对象的值对象的集合。

基于模板的集合类

简单的方法实现包含任何类型的对象类型安全的集合将使用某个基于 MFC 模板的类。 有关这些类的示例,请参见 MFC 示例 收集

下表列出了基于 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++ 模板

  • 在集合中的元素是可序列化

  • 集合中存储的元素是否可以为诊断转储

  • 集合是否是类型安全

你希望做什么?

泛型集合类任务

基于模板的集合类任务

访问集合的成员 (基于模板)

请参见

概念

常规 MFC 主题

其他资源

MFC 概念