地图简介
地图是数据结构之类的字典.它是(键,值)对的序列,其中只有单个值与每个唯一键相关联.它通常被称为 associative array .
在通常用于对元素进行排序的映射键值中.对于地图数据类型的键和值可以不同,它表示为
typedef pairvalue_type;
地图通常实现为二进制搜索树.
零大小的地图也有效.在这种情况下,map.begin()和map.end()指向同一位置.
定义
下面是std :: map的定义来自< map>头文件
template < class Key, class T, class Compare = less, class Alloc = allocator > > class map;
参数
Key : 密钥的类型.
T : 映射值的类型.
比较 : 一个二元谓词,它将两个元素键作为参数并返回一个bool.
Alloc : 分配器对象的类型.
T可以被任何其他数据类型替换,包括用户定义的类型.
成员类型
以下成员类型可以用作参数或按成员函数返回类型.
Sr.No. | 会员类型 | 定义 |
---|---|---|
1 | key_type | 键(模板的第一个参数) |
2 | mapped_type | T(模板的第二个参数) |
3 | key_compare | 比较(第三个参数)模板) |
4 | allocator_type | Alloc(模板的第四个参数) |
5 | value_type | pair< const key_type,mapped_type> |
6 | value_compare | 用于比较元素的嵌套函数类 |
7 | reference | allocator_type :: reference |
8 | const_reference | allocator_type :: const_reference |
9 | 指针 | allocator_type :: pointer |
10 | const_pointer | allocator_type :: const_pointer |
11 | iterator | value_type的双向迭代器 |
12 | const_iterator | const |
13 | reverse_iterator | 反向迭代器 |
14 | const_reverse_iterator | 常量反向迭代器 |
15 | difference_type | ptrdiff_t |
16 | size_type | size_t |
来自< map>的函数
以下是来自< map>的所有方法的列表标题.
构造函数
Sr.No . | 方法&说明 |
---|---|
1 | map::map 默认构造函数 构造一个零元素的空地图. |
2 | map :: map 范围构造函数 构造一个包含范围内的元素的地图 to last . |
3 | map :: map copy constructor 构造一个包含现有地图中每个元素副本的地图. |
4 | map :: map move constructor 使用移动语义构造一个包含其他内容的地图. |
5 | map :: map 初始化列表构造函数 从初始化列表构造一个映射. |
析构函数
Sr.No. | 方法&安培;说明 |
---|---|
1 | map:::map 通过解除分配内存来销毁地图对象. |
成员函数
Sr.No. | 方法&说明 |
---|---|
1 | map::at 返回与键 k 关联的映射值的引用. |
2 | map :: begin 返回一个迭代器,它引用地图的第一个元素. |
3 | map :: cbegin 返回一个常量迭代器,它引用地图的第一个元素. |
4 | map: :cend 返回一个常量迭代器,它指向地图的 past-the-end 元素. |
5 | map :: clear 通过删除所有元素并将地图大小设置为零来销毁地图. |
6 | map :: count 返回与键 k 关联的映射值的数量. |
7 | map :: crbegin 返回一个指向容器i的最后一个元素的常量反向迭代器. |
8 | map :: crend 返回一个常量反向迭代器,它指向容器i中第一个元素之前的理论元素. |
9 | map :: emplace 通过插入新元素来扩展容器. |
10 | map :: emplace_hint 提示版本 使用提示作为元素的位置在地图中插入新元素. |
11 | map :: empty 测试地图是否为空. |
12 | map :: end 返回一个指向地图中 past-the-end 元素的迭代器. |
13 | map :: equal_range 返回与特定键匹配的元素范围. |
14 | map :: erase position version 删除单个元素 position 的地图. |
15 | map :: erase position version 删除单个 position 的地图元素. |
16 | map :: erase key 删除映射与键 k 相关联的值. |
17 | map :: erase 范围版本 删除范围来自t的元素他映射. |
18 | map :: erase 范围版本 从地图中删除元素范围. |
19 | map::find 查找与键 k 相关联的元素. |
20 | map :: get_allocator 返回与map关联的分配器. |
21 | map :: insert 单个元素 通过在地图中插入新元素来扩展容器. |
22 | map :: insert 提示版本 通过在地图中插入新元素来扩展容器. |
23 | map :: insert range version 通过在地图中插入新元素来扩展容器. |
24 | map: :insert move hint verstion 通过插入新元素来扩展地图. |
25 | map :: insert 初始化列表版本 通过从初始化列表中插入新元素来扩展地图. |
26 | map :: key_comp 返回一个比较键的函数对象,它是此容器的构造函数参数 comp 的副本./p> |
27 | map :: lower_bound 返回指向第一个元素的迭代器,该元素不小于key k . |
28 | map :: max_size 返回map可以保存的最大元素数. |
29 | map :: operator = copy version 通过替换旧内容为地图分配新内容,并在必要时修改大小. |
30 | map :: operator = move version 将一张地图的内容移动到另一张地图,并在必要时修改大小. |
31 | map :: operator = 初始化列表版本 将元素从初始化列表复制到映射. |
32 | map :: operator [] copy version if key k 匹配容器中的元素,然后方法返回对元素的引用. |
33 | map :: operator [] 移动版本 如果ke y k 匹配容器中的元素,然后方法返回对元素的引用. |
34 | map :: rbegin 返回一个反向迭代器,它指向地图的最后一个元素. |
35 | map :: rend 返回一个反向迭代器,它指向地图的反面i. |
36 | map :: size 返回地图中存在的元素数. |
37 | map :: swap 用地图x的内容交换地图内容. |
38 | map: :upper_bound 返回指向第一个元素的迭代器,该元素大于key k . |
39 | map :: value_comp 返回一个比较 std :: map :: value_type 类型的对象的函数对象. |
非会员重载函数
Sr.No. | 方法&说明 |
---|---|
1 | operator== 测试两张地图是否相等. |
2 | operator!= 测试两张地图是否相等. |
3 | operator< 测试第一张地图是否小于其他与否. |
4 | map :: operator< = 测试第一张地图是否小于或等于其他地图. |
5 | operator> 测试第一张地图是否大于其他地图. |
6 | operator> = 测试第一张地图是否大于或等于其他地图. |
7 | swap() 用地图x的内容交换地图内容. |
multimap简介
Multimap是类似于数据结构的字典.它是(键,值)对的序列,其中多个值可以与等效键相关联.它通常被称为 associative array .
在通常用于对元素进行排序的多图键值中.对于多图数据类型的键和值可以不同,它表示为
typedef pairvalue_type;
Multimaps通常实现为二进制搜索树.
零大小的多重映射也有效.在这种情况下,multimap.begin()和multimap.end()指向同一位置.
定义
下面是std :: multimap的定义来自< multimap>头文件
template < class Key, class T, class Compare = less, class Alloc = allocator > > class multimap;
参数
Key : 密钥的类型.
T : 映射值的类型.
比较 : 一个二元谓词,它将两个元素键作为参数并返回一个bool.
Alloc : 分配器对象的类型.
T可以被任何其他数据类型替换,包括用户定义的类型.
成员类型
以下成员类型可以用作参数或按成员函数返回类型.
Sr.No. | 会员类型 | 定义 |
---|---|---|
1 | key_type | 键(模板的第一个参数) |
2 | mapped_type | T(模板的第二个参数) |
3 | key_compare | 比较(第三个参数)模板) |
4 | allocator_type | Alloc(模板的第四个参数) |
5 | value_type | pair< const key_type,mapped_type> |
6 | value_compare | 用于比较元素的嵌套函数类 |
7 | reference | allocator_type :: reference |
8 | const_reference | allocator_type :: const_reference |
9 | 指针 | allocator_type :: pointer |
10 | const_pointer | allocator_type :: const_pointer |
11 | iterator | value_type的双向迭代器 |
12 | const_iterator | const |
13 | reverse_iterator | 反向迭代器 |
14 | const_reverse_iterator | 常量反向迭代器 |
15 | difference_type | ptrdiff_t |
16 | size_type | size_t |
来自< multimap>的函数
以下是来自< multimap>的所有方法的列表标题.
构造函数
Sr.No . | 方法&说明 |
---|---|
1 | multimap::multimap 默认构造函数 构造一个零元素的空多图. |
2 | multimap :: multimap 范围构造函数 构造一个多元图,其元素数量在 first 到 last |
3 | multimap :: multimap 复制构造函数 构造一个多图,其中包含现有元素的副本multimap. |
4 | m ultimap :: multimap move constructor 使用move语义构造一个包含其他内容的多图. |
5 | multimap :: multimap 初始化列表构造函数 从初始化列表构造一个多图. |
析构函数
Sr.No. | 方法&说明 |
---|---|
1 | multimap::multimap 通过解除分配内存来销毁多图对象. |
成员函数
Sr.No. | 方法&说明 |
---|---|
1 | multimap::begin 返回一个迭代器,它引用多图的第一个元素. |
2 | multimap :: cbegin 返回一个常量迭代器,它引用多图的第一个元素. |
3 | multimap :: cend 返回一个常量迭代器,它指向多图的 past-the-end 元素. |
4 | multimap :: clear 通过删除所有元素并设置多个大小来销毁多图映射为零. |
5 | multimap :: count 返回与键 k 关联的多映射值的数量. |
6 | multimap :: crbegin 返回一个指向容器最后一个元素的常量反向迭代器. |
7 | multimap :: crend 返回一个常量反向迭代器,它指向容器中第一个元素之前的理论元素. |
8 | multimap::emplace 扩展容器插入新元素. |
9 | multimap :: emplace_hint 提示版 使用提示在多图中插入新元素元素的位置. |
10 | multimap :: empty 测试multimap是否为空. |
11 | multimap :: end 返回一个指向多图中 past-the-end 元素的迭代器. |
12 | multimap::equal_range 返回与特定键匹配的元素范围. |
13 | multimap::erase position version 从 position 中删除多图的单个元素. |
14 | multimap :: erase position version 从 position 中删除多图的单个元素. |
15 | multimap::erase key 删除与键 k 关联的映射值. |
16 | multimap :: erase range version 从中删除元素的范围multimap. |
17 | multimap :: erase 范围版本 从多图中删除元素范围. |
18 | multimap :: find 查找与键 k 相关联的元素. |
19 | multimap::get_allocator 返回与multimap关联的分配器. |
20 | multimap :: insert 单个元素 通过在multimap中插入新元素来扩展容器. |
21 | multimap :: insert 提示版 通过在multimap中插入新元素来扩展容器. |
22 | multimap :: insert 范围版本 通过在多图中插入新元素来扩展容器. |
23 | multimap :: insert move hint verstion 通过插入新元素来扩展多图. |
24 | multimap :: insert 初始化列表版本 通过插入新元素来扩展多图初始化列表. |
25 | multimap :: key_comp 返回一个比较键的函数对象,它是此容器构造函数的副本参数 comp . |
26 | multimap :: lower_bound 返回指向第一个元素的迭代器不小于关键 k . |
27 | multimap :: max_size 返回最大元素数量由multimap持有. |
28 | 多map :: operator = copy version 通过替换旧的内容为多图分配新内容,并在必要时修改大小. |
29 | multimap :: operator = 移动版本 将一个多图的内容移动到另一个,并在必要时修改大小. |
30 | multimap :: operator = 初始化列表版本 将元素从初始化列表复制到多图. |
31 | multimap :: rbegin 返回指向多图的最后一个元素的反向迭代器. |
32 | multimap :: rend 返回a reverse iterator which points to the reverse end of the multimap. |
33 | multimap::size Returns the number of elements present in the multimap. |
34 | multimap::swap Exchanges the content of multimap with contents of multimap x. |
35 | multimap::upper_bound Returns an iterator pointing to the first element which is greater than key k. |
36 | multimap::value_comp Returns a function object that compares objects of type std::multimap::value_type. |
Non-member overloaded functions
Sr.No. | Method & Description |
---|---|
1 | operator== Tests whether two multimaps are equal or not. |
2 | operator!= Tests whether two multimaps are equal or not. |
3 | operator< Tests whether first multimap is less than other or not. |
4 | multimap::operator<= Tests whether first multimap is less than or equal to other or not. |
5 | operator> Tests whether first multimap is greater than other or not. |
6 | operator>= Tests whether first multimap is greater than or equal to other or not. |
7 | swap() Exchanges the content of multimap with contents of multimap x. |