首页 理论教育 关联式容器:用于排序、快速访问的容器

关联式容器:用于排序、快速访问的容器

时间:2023-10-25 理论教育 版权反馈
【摘要】:关联式容器是最常见的、也是最有用的容器。关联式容器依据特定的排序准则,自动为其元素排序。所有关联式容器都有一个可供选择的template参数。关联式容器还能提供对元素的快速访问,但不能实现任意位置的操作。主要的关联式容器包括set(集合)、multisets、maps(映射)和multimaps。set是支持随机存取的容器,其键值和实值是同一个值。map是一种包含成对数据的关联数组容器。multimap是一种允许出现重复键值的关联数组容器。

关联式容器:用于排序、快速访问的容器

关联式容器是最常见的、也是最有用的容器。关联式容器其实是关联数组概念的扩展。

关联式容器依据特定的排序准则,自动为其元素排序。关联式容器中的元素都经过排序,是有序的。所有关联式容器都有一个可供选择的template参数。这个参数用以指明排序准则。排序准则是以函数形式体现的,用于比较元素值或键值。默认情况下以“operator<”进行比较排序。程序员也可以提供自定义的比较函数,从而定义出不同的排序准则。

通常关联式容器由二叉树数据结构实现的。在二叉树中,每个元素都有一个父节点和两个子节点;左子树的所有元素都比该元素的值小,右子树的所有元素都比该元素的值大。关联式容器的差别在于元素的类型以及处理重复元素的方式。关联式容器还能提供对元素的快速访问,但不能实现任意位置的操作。

主要的关联式容器包括set(集合)、multisets、maps(映射)和multimaps。其中set可视为一种特殊的map,其元素的值即键值。前两种容器是在<set>头文件中声明和定义,后两种容器是在<map>头文件中声明和定义的。(www.xing528.com)

set是支持随机存取的容器,其键值和实值是同一个值。set型容器中的所有元素必须具有唯一值,即不能包含重复的元素。set型容器中的元素可以实现按照次序来存储一组数值,即在一个集合中元素既作为被存储的数据又作为数据的键值。multiset是另一种类型的容器,其键值和数据元素是同样的值。与set不同的是,它可以包含重复的元素。multiset对象也可以实现按照次序来存储一组数值。

map是一种包含成对数据的关联数组容器。成对数据中的一个值是实值,另一个值是用来寻找数据的键值。一个特定的关键值只能与一个元素相联系。map是排序结构体,键值是独一无二的。事实上,map的内部结构和set是一样的。set可以看作一种特殊的map,其键值和实值是同一个。multimap是一种允许出现重复键值的关联数组容器。与map对象不同,一个键值可以和多个元素相联系,multimap而且允许键值重复。

下面将主要介绍上述4种关联式容器。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈