通过


数组、列表和映射类

注释

Microsoft基础类(MFC)库将继续受到支持。 但是,我们不再添加功能或更新文档。

为了处理数据的聚合,类库提供了一组集合类(数组、列表和映射),这些类可以保存各种对象和预定义类型。 将动态调整集合的大小。 这些类可用于任何程序,无论是否为 Windows 编写。 但是,它们最适用于实现在应用程序框架中定义文档类的数据结构。 你可以从这些类中轻松派生专用集合类,也可以基于模板类创建它们。 有关这些方法的详细信息,请参阅 “集合”一文。 有关模板集合类的列表,请参阅 “数组、列表和映射的模板类”一文。

数组是连续存储在内存中的一维数据结构。 它们支持非常快速的随机访问,因为可以通过将元素的索引乘以元素的大小并将结果添加到数组基址来计算任何给定元素的内存地址。 如果需要往数组中插入元素,数组的操作代价会很高,因为插入元素后,该元素之后的整个数组都需要移动,以便腾出插入元素的空间。 数组可以根据需要增长和收缩。

列表类似于数组,但存储方式非常不同。 列表中的每个元素还包括指向上一个和下一个元素的指针,使其成为一个多链接的列表。 添加或删除项非常快,因为这样做只涉及更改几个指针。 但是,搜索列表可能很昂贵,因为所有搜索都需要从列表的某个结尾开始。

映射将一个键值与一个数据值相关联。 例如,映射的键可以是字符串和指针指向的列表数据。 你会要求地图提供与特定字符串关联的指针。 映射查找非常快,因为映射将使用哈希表进行键查找。 添加和删除项也很快。 映射通常与作为辅助索引的其他数据结构一起使用。 MFC 使用一种称为 消息映射 的特殊映射,将 Windows 消息映射到指向该消息的处理程序函数的指针。

另请参阅

类概述