multiset (STL/CLR)
模板类描述对象控件访问双向元素的更改长的序列。 使用容器 multiset 管理元素序列为 (右括号) 平衡的节点已排序的树,每个存储的元素。
在如下解释, GValue 相同。 GKey,又是一样的。 Key ,除非后者是 ref 类型,因此,在与 Key^情况下。
template<typename Key>
ref class multiset
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
{ ..... };
参数
- 键
受控序列中元素的键组件的类型。
成员
类型定义 |
说明 |
---|---|
常数的迭代器类型的控制序列的。 |
|
常量的类型对元素。 |
|
常数的反向迭代器类型的控制序列的。 |
|
(可以签名) 的距离的类型两个元素间的。 |
|
泛型接口的类型的容器。 |
|
一个迭代的类型泛型接口的容器的。 |
|
一个反向迭代器的类型泛型接口的容器的。 |
|
一个元素的类型泛型接口的容器的。 |
|
一个迭代器类型的控制序列的。 |
|
两个密钥的排序委托。 |
|
一个排序的键的类型。 |
|
引用的类型的元素。 |
|
一个反向迭代器类型的控制序列的。 |
|
(非负) 距离的类型两个元素间的。 |
|
两个元素值的排序委托。 |
|
元素的类型。 |
成员函数 |
说明 |
---|---|
指定受控序列的开头。 |
|
移除所有元素。 |
|
计数与指定的键的元素。 |
|
测试组件是否不存在。 |
|
指定受控序列的末尾。 |
|
查找与指定的键的范围。 |
|
移除指定位置处的元素。 |
|
查找与指定键匹配的元素。 |
|
添加元素。 |
|
复制两个密钥的排序委托。 |
|
查找与指定的键范围的开头。 |
|
构造值对象。 |
|
构造容器对象。 |
|
指定反转的受控序列的开头。 |
|
指定反转的受控序列的末尾。 |
|
计算元素的数量。 |
|
交换两个容器的内容。 |
|
复制控件序列到新数组。 |
|
查找与指定的键范围的末尾。 |
|
复制两个元素值的排序委托。 |
运算符 |
说明 |
---|---|
替换控件序列。 |
|
确定 multiset 对象是否与另一 multiset 对象不相等。 |
|
确定 multiset 对象是否大于另一个 multiset 对象小于。 |
|
确定 multiset 对象是否小于或等于另一 multiset 对象。 |
|
确定 multiset 对象是否与另一 multiset 对象相等。 |
|
确定 multiset 对象是否大于另一个 multiset 对象大。 |
|
确定 multiset 对象是否大于或等于另一 multiset 对象。 |
接口
接口 |
说明 |
---|---|
重复的对象。 |
|
顺序排列元素。 |
|
维护元素组。 |
|
顺序排列类型元素。 |
|
维护类型元素的组。 |
|
ITree<键,值> |
维护泛型容器。 |
备注
对象分配它控件作为单独的节点序列中未使用记忆字段。 它将元素插入到 a 中 (右括号) 通过复制一个节点内容平衡的工作将保持对通过修改节点之间的链接的树,不到另一个。 这表示您可以自由插入和移除元素,而不会干扰的其余元素。
它通过调用类型 multiset::key_compare (STL/CLR)一个单元的委托对象控件的对象排序序列。 ,在构造多个集时,可以指定存储的委托对象;如果不指定委托对象,则默认值为比较 operator<(key_type, key_type)。 您访问该存储区的对象通过调用成员函数 multiset::key_comp (STL/CLR)()。
此委托对象必须实施强弱顺序对类型 multiset::key_type (STL/CLR)键。 这意味着,任何两个密钥的 X 和 Y:
key_comp()(X, Y) 返回在每同一个布尔值结果调用。
如果 key_comp()(X, Y) 为 true,则 key_comp()(Y, X) 一定是错误的。
如果 key_comp()(X, Y) 为 true,则 X 被视为排序。 Y之前。
如果 !key_comp()(X, Y) && !key_comp()(Y, X) 为 true,则 X 和 Y 添加具有等效排序。
对于前面放置一个控件序列的 Y 的所有元素 X , key_comp()(Y, X) 为 false。 (对于默认委托对象,而不会减小值。)不同于模板类 set (STL/CLR),模板类 multiset 对象不需要任何元素的键是唯一的。 (两个或多个键可以具有等效项排序。)
每个元素作为 ey 和值。 序列表示为允许查找、任意元素插入和删除与许多操作的比例与元素数对数在序列的方法 (对数时)。 而且,请插入元素不会使迭代器,并且,移除元素无效点在被移除的元素的那些迭代器。
多级集支持双向迭代器,这意味着可以单步执行给定的相邻元素迭代器指定在控件序列的元素。 特定头节点相对应 multiset::end (STL/CLR)返回的迭代器()。 如果可以减少此迭代器达到控件序列的最后一个元素,。 可以添加多个设置迭代器达到头节点,,并且与 end()然后将相等。 ,但不能取消引用 end()返回的迭代器。
请注意您不能引用直接提供的多级集元素其数字位置--它需要一个随机访问迭代器。
多级集迭代器存储的句柄。其关联的多级集节点,然后存储的句柄到其关联的容器。 您只能使用迭代器与其关联的容器对象。 ,只要其关联的多级集节点与某多个集,多个集迭代器保持有效。 此外,有效的迭代器 dereferencable--可以使用以便为它指定的访问或修改元素值--只要它与 end()不相等。
清除或移除元素调用其存储的值的析构函数。 销毁容器清除所有元素。 因此,元素类型为 ref 类的容器以确保组件不活动得比容器时间。 但是,请注意,容器处理执行 not 销毁其元素。
要求
标题: <cliext/设置>
命名空间: cliext