multimap Class

标准模板库基于选件类为数据存储和检索从该每个元素都是一对都具有数据值和一个排序关键字的集合的使用。 键的值不是唯一以及使用自动对数据进行排序。 可以直接更改一个元素的值。基于的,但是,不是其关联的键值。 相反,必须删除键值与旧组件,并且新的键值与插入的新元素。

template <
   class Key, 
   class Type, 
   class Traits=less<Key>, 
   class Allocator=allocator<pair <const Key, Type> > 
>
class multimap

参数


  • 在基于要存储的按键数据类型。

  • Type
    在基于要存储的元素数据类型。

  • Traits
    提供函数对象可以比较两个元素值的类型决定它们在基于的相对顺序的排序关键字。 二进制谓词 less*<Key>* 是默认值。

  • Allocator
    表示存储的分配器对象封装有关内存的映射分配和释放的详细信息的类型。 此参数是可选的,并且默认值为 allocator*<*pair *<*const 键,Type> >。

备注

STL 基于选件类。

  • 一个关联容器,可变大小容器支持元素值有效的检索基于一个关联的键值。

  • 双面布料,因为它提供双向迭代器访问其元素。

  • 排序,因为其元素由容器中的键值对与指定的比较函数。

  • 多个,因为其元素不必具有唯一键,因此,一个键值可以有多个元素数据值与它。

  • 对关联,容器,因为元素数据值从其键值是不同的。

  • 模板类,选件,因为它提供的功能是泛型的,所以特定类型的数据的独立作为元素或键包含的。 为组件和密钥将使用的数据类型,相反,指定为参数。选件类模板与比较函数和分配器。

映射选件类提供的迭代器是一双向迭代器,但是,选件类成员函数 插入基于 具有接受作为模板参数较弱的输入迭代器,功能要求比双向迭代器选件类确保的一些最小的版本。 不同的迭代器概念窗体在功能的优化相关的系列。 每个迭代器概念有自己的一组要求,并在中使用它们需要限制的算法它们于要求的假设由该类型迭代器提供的。 可以采用,输入迭代器可以被取消引用引用某些对象,它可以添加到序列中的下一个迭代。 这是最小的功能,但是,它是的足够可以有意义地访问有关迭代器 [_First,_Last) 的 大小选件类的成员函数中。

容器类型选择应根据应用程序所需的搜索和插入的类型通常。 关联容器对于查找、插入和删除操作进行了优化。 显式支持这些操作的成员函数是有效的,执行它们在平均比例与元素数对数在容器的时间。 插入元素不会使迭代器,并且,移除元素无效专门点在移除的元素的那些迭代器。

在关联值的条件与其主要由应用程序时,应满足基于对象关联的容器选择。 这种结构的模型是有序列表。提供定义的关联的字符串值的关键字,运行并不总是唯一定义。 如果为,则相反,关键字唯一定义,以便键都是唯一的,则映射是容器选择。 如果为,则另一方面,存储在列表中,则设置的正确的容器。 如果运行的多个匹配项,则允许多个集是相应容器结构。

它通过调用类型 key_compare一个单元的函数对象控件的基于排序序列。 此存储的对象是可以通过调用成员函数获取 key_comp的比较函数。 通常,元素仅比可比较需要建立此顺序:因此将任何两个元素,可以确定为它们是等效的 (来讲都比其他不小于) 或一个比其他小于。 这将导致排序在非等价的元素之间。 在技术声明,比较函数是生成强弱顺序在标准数学有意义的二进制性质。 双重性质 f(*x,y)*是具有两个参数对象 xy 和返回值为 true 或 false 的函数对象。 对施加的排序设置为强弱顺序二进制谓词是否 irreflexive,反对称和管的,并且等效性是否是可传递的,其中两个对象 x 和 y 定义等效,当两 f 时(*x、y)*和 f(*y,其中 x)*是错误的。 如果相等性的更强的情况在项之间的替换该等效性,则排序成为总 (来讲所有元素排序有关彼此),并匹配的键彼此将难以辨别的。

成员

1ka6hya8.collapse_all(zh-cn,VS.110).gif构造函数

基于

构造为空或属于某其他 multimap全部或部分的副本的 multimap

1ka6hya8.collapse_all(zh-cn,VS.110).gifTypedef

allocator_type

表示 multimap 对象的 allocator 选件类的类型。

const_iterator

提供了双向迭代器可以读取在 multimap的一个 const 元素的类型。

const_pointer

提供了指向有关在 multimap的一个 const 元素的类型。

const_reference

提供对 const 元素的类型在读取和执行的 const 操作 multimap 存储状态。

const_reverse_iterator

提供了双向迭代器可以读取在 multimap的所有 const 元素的类型。

difference_type

可用于表示 multimap 的元素数在一个范围的组件之间的一个带符号整数类型指向由迭代器。

迭代器

提供两个迭代之间的区别是指在同一 multimap中元素的类型。

key_compare

提供函数对象可以比较两个类型排序关键字确定两个元素相对顺序在 multimap的。

key_type

描述排序关键字对象组合 multimap的每个元素的类型。

mapped_type

表示数据类型的类型在 multimap存储状态。

pointer

提供了指向有关在 multimap的一个 const 元素的类型。

参考

提供对元素的类型在 multimap存储状态。

reverse_iterator

提供了双向迭代器可以读取或修改在取消的 multimap的元素的类型。

size_type

提供了指向有关在 multimap的一个 const 元素的无符号整数类型。

value_type

提供函数对象可以比较两个元素的类型决定它们在 multimap的相对顺序的排序关键字。

1ka6hya8.collapse_all(zh-cn,VS.110).gif成员函数

begin

返回解决的迭代器在 multimap的第一个元素。

multimap::cbegin

返回解决常数的迭代器 multimap的第一个元素。

multimap::cend

返回解决成功最后一个元素的位置。multimap的常量迭代器。

clear

清除 multimap的所有元素。

count

返回元素数。键匹配一个参数指定键的 multimap 的。

multimap::crbegin

返回解决常数的迭代器是相反的 multimap的第一个元素。

multimap::crend

返回解决成功最后一个元素的位置。是相反的 multimap的常量迭代器。

multimap::emplace

插入构造的元素就地到 multimap中。

multimap::emplace_hint

插入构造的元素就地到 multimap中,具有位置提示

empty

如果 multimap 为空,测试。

end

返回解决成功最后一个元素的位置。multimap的迭代器。

equal_range

查找元素键与指定值元素的范围。

清除

从指定的位置移除元素或元素的大小 multimap 的或移除与指定的键的元素。

find

返回解决的迭代器具有一个键等效于指定的键一个元素的第一个位置。multimap 的。

get_allocator

返回在的 allocator 对象的复制构造 multimap

插入

插入元素或元素的范围。multimap中。

key_comp

检索在 multimap使用的顺序对密钥进行比较对象的副本。

lower_bound

返回迭代器到与键等于或大于指定的键的 multimap 的第一个元素。

max_size

返回 multimap的最大长度。

rbegin

返回解析的迭代器是相反的 multimap的第一个元素。

rend

返回解决成功最后一个元素的位置。是相反的 multimap的迭代器。

size

返回元素数。multimap的。

交换

交换两 multimaps. 的元素。

upper_bound

返回迭代器到与一键比指定的键大的 multimap 的第一个元素。

value_comp

成员函数返回通过比较其键值确定元素的顺序。multimap 的函数对象。

1ka6hya8.collapse_all(zh-cn,VS.110).gif运算符

multimap::operator=

用另一 multimap的副本替换 multimap 的元素。

要求

Header: <map>

命名空间: std

() 在基于对存储为类型 pair对象。 对选件类需要标头 <utility>,由 <map>自动包括。

请参见

参考

线程安全性对标准C++库中

标准模板库

其他资源

基于成员

map 成员

标头文件