map Class

用于数据存储和检索从每个元素都是一对都具有数据值和一个排序关键字的集合。键的值是唯一以及使用自动排序数据。

可以直接更改一个元素的值在映射中。键值是常数,不能更改。相反,必须删除键值与旧组件,因此,必须为新元素插入新的键值。

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

参数

  • Key
    在映射要存储的按键数据类型。

  • Type
    在映射要存储的元素数据类型。

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

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

备注

标准模板库 (STL) 映射选件类是:

  • 有效地检索元素值的容器变量的大小作为关联的键值。

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

  • 排序,因为其元素由键值对基于指定的比较函数。

  • 一个。因为其元素中的每一个都必须具有一个唯一键。

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

  • 模板类,选件,因为它提供的功能是元素或键类型的泛型和独立。使用元素和键的数据类型指定为参数。选件类模板与比较函数和分配器。

映射选件类提供的迭代器是一双向迭代器,但是,插入映射 选件类成员函数具有接受的模板参数较弱的输入迭代器,功能要求小于双向迭代器选件类的确保这些是的版本。不同的迭代器概念在于它们的功能的优化关联。每个迭代器概念有自己的一组要求,并且,使用它的算法必须由要求限制。输入迭代器可以被取消引用引用某些对象,并会增加到序列中的下一个迭代。

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

建议您进行映射关联容器选择,在关联值与键时的条件由应用程序满足。这种类型的模型结构是关联字符串值提供定义的有序列表单独发生的关键字。如果运行有多个正确的定义,因此,键不是唯一的,则基于是容器选择。如果存储的列表中,则设置的是相应容器。如果运行的多个匹配项,则允许多个集正确。

它通过调用类型 key_compare一个单元的函数对象控件的映射排序元素。此存储的对象是通过调用 key_comp 方法访问的比较函数。通常,任何两个给定元素进行比较来确定一个是否比其他小于或它们是否等效。当所有元素进行比较,非等价的元素已排序的序列创建。

说明说明

比较函数是生成强弱顺序在标准数学有意义的二进制性质。双重性质 f(x,y) 是具有两个参数对象 x 和 y的函数对象和 true 或 false的返回值。对施加的排序设置为强弱顺序二进制谓词是否 irreflexive,反对称和管的,因此,它们是否是可传递的,其中两个对象 x 和 y 定义等效,当 f(x,y)和 f(y,x) 是 false时。如果相等性的更强的情况在项之间的替换该等效性,排序成为总 (来讲所有元素排序有关其他),并且,匹配的键从一其他将难以辨别的。

成员

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

构造列出给定范围或与特定值的元素或与特定 allocator 或作为其他映射的副本。

s44w4h2s.collapse_all(zh-cn,VS.110).gifTypedef

allocator_type

allocator 选件类中的 typedef 映射对象的。

const_iterator

可以读取映射中的 const 元素的一双向迭代器的 typedef。

const_pointer

指针的 typedef 到映射中的 const 元素。

const_reference

引用的 typedef 到读取和执行的 const 操作将存储的 const 元素。

const_reverse_iterator

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

difference_type

映射元素的允许值的有符号整数 typedef 在一个范围的元素之间指向由迭代器。

迭代器

可以读取或修改映射中所有元素的一双向迭代器的 typedef。

key_compare

可以比较的函数对象的 typedef 两个键确定两个元素相对顺序在映射中。

key_type

在映射的每个元素存储的类别键的 typedef。

mapped_type

在映射的每个元素存储的数据的 typedef。

pointer

指针的 typedef 到映射中的 const 元素。

参考

引用的 typedef 到将存储的元素。

reverse_iterator

可以读取或修改在反转的映射的元素的一双向迭代器的 typedef。

size_type

元素的允许值的无符号整数 typedef 在映射中

value_type

作为元素存储的对象的类型的 typedef 在映射。

s44w4h2s.collapse_all(zh-cn,VS.110).gif方法

map::at

查找具有指定的键值的元素。

begin

返回指向在映射的第一个元素的迭代器。

map::cbegin

返回指向在映射的第一个元素的常量迭代器。

map::cend

返回 const 将结束迭代器。

clear

清除映射的所有元素。

count

返回元素数。键与参数指定键的映射。

map::crbegin

返回指向在反转的映射的第一个元素的常量迭代器。

map::crend

返回指向位置在反转的映射的最后一个元素之后的常量迭代器。

map::emplace

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

map::emplace_hint

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

empty

如果映射为空,则返回 true。

end

返回通过这就结束迭代器。

equal_range

返回迭代器对。在匹配的第一个迭代器指向在 map 的第一个元素使用比指定的键大的密钥。在对的第二个迭代器指向在 map 的第一个元素与等于或大于键的键。

清除

从指定的位置移除元素或元素的大小的映射。

find

返回指向一个元素位置在映射中具有一个键等于指定的键的迭代器。

get_allocator

返回用于构造映射 allocator 对象的副本。

插入

插入元素或元素的范围映射到中的指定位置。

key_comp

返回使用按映射的键比较对象的副本。

lower_bound

返回迭代器对具有一个键值等于或大于一指定的键映射的第一个元素。

max_size

返回映射的最大长度。

rbegin

返回指向在反转的映射的第一个元素的迭代器。

rend

返回指向位置在反转的映射的最后一个元素之后的迭代器。

size

返回元素数。映射。

交换

交换两个映射的元素。

upper_bound

返回迭代器对具有一个键值比大于指定的键映射的第一个元素。

value_comp

检索用于按映射元素值比较对象的副本。

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

operator[]

将元素插入到具有指定的键值的映射中。

map::operator=

用另一映射的副本替换映射的元素。

要求

标头: <map>

命名空间: std

请参见

参考

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

标准模板库

其他资源

映射成员

map 成员