多集的类用于存储和检索数据的集合,其中所包含的元素的值不需要唯一和中的他们是根据数据自动排序关键字值的标准模板库。在多集元素的项的值不能直接更改。相反,必须删除旧值和新值的元素插入。
template <
class Key,
class Compare=less<Key>,
class Allocator=allocator<Key>
>
class multiset
参数
键
存储在多集元素数据类型。比较
它提供了一个函数对象类型可以比较两个元素的值作为排序关键字,以确定它们的相对顺序中的多集。二元谓词更少<Key> 为默认值。Allocator
表示存储分配器对象封装有关多集的分配和解除分配内存的详细信息的类型。默认值是分配器*<Key>。*
备注
STL 多集的类:
关联容器中,这是支持基于关联的密钥值的元素值的有效检索的可变大小容器。
可逆的因为它提供了双向迭代器来访问它的元素。
排序,因为它的元素进行排序按依照指定的比较函数在容器中的键值。
在这个意义上它的元素不需要有唯一的键,以便一个项的值可以有多个与之关联的元素值的倍数。
一个简单的关联容器由于其元素值的键值。
模板类,因为它提供的功能是泛型,因此独立作为元素所包含的数据的特定类型。要使用数据类型,而被指定为比较函数和分配器的类模板中的参数。
多集的类提供的迭代器是一个双向迭代器,但类成员函数插入 和 多集作为模板参数采用较弱的输入的迭代,其功能的需求是保证双向迭代器的类的更小的版本。不同的迭代器概念形成一系列相关的一生中它们的功能。每个迭代器概念有其自己的需求和使用它们的算法必须限制其假设该迭代器的类型提供的要求。它可能会假定输入迭代器可能会被取消引用来引用某些对象和它可能会增加到序列中的下一个迭代器。这是最少量的功能,但这足以能够有意义谈一系列迭代器 [_First, _Last) 的类成员函数的上下文中。
选择的容器类型应通常基于搜索的类型,并插入所需的应用程序。关联容器最适合的查找、 插入和删除操作。明确支持这些操作的成员函数是高效执行它们的容器中的元素数的对数成比例的平均时间。插入元素使没有迭代器,并删除元素使仅有专门指向已删除的元素的迭代器无效。
多重集应由应用程序满足的条件与相应的键相关联的值时所选择的关联容器。多集的元素可能是多个,并且作为其自己的排序关键字,以便键不是唯一的。这种类型模型是结构的说,单词,单词可能发生的一次以上的有序列的表。已多次出现的单词不被允许,一组将被相应的容器结构,然后。如果唯一定义了值为附加到的唯一关键字的列表时,映射将适当的结构,以包含此数据。而是定义不是唯一的如果 multimap 将选择的容器。
多重集进行排序的顺序,它通过调用存储的函数对象类型的控制Compare。此存储的对象是通过调用该成员函数可以访问的比较函数 key_comp。一般情况下,元素需要进行只是小于比较建立此顺序: 以便给出任何两个元素,它可以确定它们是等效的 (,两者都不是小于另) 或其中一个是小于另。这会导致 nonequivalent 元素之间排序。更多技术说明一点,比较功能是引起严格弱顺序标准数学意义上的二元谓词。二元谓词 f(x,y) 是一个具有两个参数对象的函数对象 x 和 y 和返回值为 ,则返回 true 或 false。强加于一组排序是严格顺序如果二元谓词非自反和反对称,可传递,如果对等都是可传递的其中两个对象的弱 x 和 y 定义为相当时两个 f(x,y) 和 f(y,x) 为假,则。如果更强的键之间的相等条件替换等价的然后顺序变得总 (在这个意义上的所有元素相对于彼此都排序的) 和匹配键将每个 indiscernible。
构造函数
构造multiset就是空的所有副本或部分指定multiset。 |
Typedef
对于 typedef allocator类的multiset对象。 |
|
对于一个双向迭代器,可以读取的 typedef const元素中的multiset。 |
|
一个指向的 typedef const元素中的multiset。 |
|
为引用 typedef const元素存储在multiset用于读取和执行const操作。 |
|
对于一个双向迭代器,可以阅读任何 typedef const元素中的multiset。 |
|
有符号的整数的元素个数的 typedef multiset在迭代器所指向的元素之间的范围内。 |
|
对于一个双向迭代器,可以读取或修改任何元素中的 typedef multiset。 |
|
可以比较两个键来确定两个元素中的相对顺序函数对象 typedef multiset。 |
|
可以比较两个排序关键字来确定两个元素中的相对顺序函数对象 typedef multiset。 |
|
中的元素的指针的 typedef multiset。 |
|
为存储在某个元素的引用 typedef multiset。 |
|
对于一个双向迭代器,可以读取或修改元素的已冲销的 typedef multiset。 |
|
无符号的整数类型可以表示中的元素数multiset。 |
|
可以比较两个元素作为排序关键字,以确定它们的相对顺序中的函数对象 typedef multiset。 |
|
描述存储为元素作为对象的 typedef multiset中的值作为其容量。 |
方法
返回一个迭代器指向的第一个元素, multiset。 |
|
清除所有的元素的multiset。 |
|
返回元素中的multiset的键匹配作为参数指定的密钥。 |
|
如果测试multiset为空。 |
|
返回一个迭代器指向的位置中的最后一个元素之后, multiset。 |
|
返回对迭代器。在该对中的第一个元素指向第一个迭代器multiset大于指定的项的键。在该对中的第一个元素指向第二个迭代器multiset等于或大于键的键。 |
|
删除元素或元素中的一系列multiset从指定的位置或删除元素与指定的键匹配的。 |
|
返回一个迭代器指向第一个位置中的元素, multiset具有等于指定的项的键。 |
|
返回一份allocator ,用来构造对象multiset。 |
|
插入元素或某个范围的元素到multiset。 |
|
提供了一个函数对象,它可以比较两个排序关键字来确定两个元素中的相对顺序multiset。 |
|
第一个元素中返回一个迭代器multiset等于或大于指定的项的键。 |
|
返回的最大长度multiset。 |
|
返回一个迭代器指向已冲销的第一个元素, multiset。 |
|
返回一个迭代器指向成功中已冲销的最后一个元素的位置, multiset。 |
|
返回元素中的multiset。 |
|
交换两个元素multisets。 |
|
第一个元素中返回一个迭代器multiset大于指定的项的键。 |
|
检索用于订单中的元素值的比较对象的副本multiset。 |
要求
标题: <set>
命名空间: 标准