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