目录

C++ Library - <map>

地图介绍

地图是数据结构的字典。 它是(键,值)对的序列,其中只有单个值与每个唯一键相关联。 它通常被称为关联数组

在map键值中通常用于对元素进行排序。 对于地图数据类型的键和值可以不同,它表示为

typedef pair<const Key, T> value_type;

地图通常实现为二进制搜索树。

零大小的地图也是有效的。 在这种情况下,map.begin()和map.end()指向同一位置。

定义 (Definition)

下面是头文件中std :: map的定义

template < class Key,
           class T,
           class Compare = less<Key>,
           class Alloc = allocator<pair<const Key,T> >
           > class map;

参数 (Parameters)

  • Key - Key类型。

  • T - 映射值的类型。

  • Compare - 一个二元谓词,它将两个元素键作为参数并返回一个bool。

  • Alloc - 分配器对象的类型。

T可以由包括用户定义类型的任何其他数据类型代替。

成员类型 (Member types)

以下成员类型可以用作参数或按成员函数返回类型。

Sr.No. 会员类型 定义
1key_type 键(模板的第一个参数)
2mapped_type T(模板的第二个参数)
3key_compare 比较(模板的第三个参数)
4allocator_type Alloc(模板的第四个参数)
5value_type pair
6value_compare 嵌套函数类来比较元素
7referenceallocator_type::reference
8const_referenceallocator_type::const_reference
9pointerallocator_type::pointer
10const_pointerallocator_type::const_pointer
11iterator value_type的双向迭代器
12const_iterator const value_type的双向迭代器
13reverse_iterator 反向迭代器
14const_reverse_iterator 恒定反向迭代器
15difference_typeptrdiff_t
16size_typesize_t

来自的函数

下面是标题中所有方法的列表。

构造函数 (Constructors)

Sr.No. 方法和描述
1 map::map 默认构造函数

构造一个零元素的空映射。

2 map::map 范围构造函数

构造一个包含从第一个最后一个范围内的元素的映射。

3 map::map copy构造函数

构造一个包含现有地图中每个元素副本的地图。

4 map::map move构造函数

使用移动语义构造包含其他内容的映射。

5 map::map 初始化列表构造函数

从初始化列表构造一个映射。

Destructor

Sr.No. 方法和描述
1 map::~map

通过释放它的内存来销毁地图对象。

成员函数 (Member functions)

Sr.No. 方法和描述
1 map::at

返回对与键k关联的映射值的引用。

2 map::begin

返回一个迭代器,它引用地图的第一个元素。

3 map::cbegin

返回一个常量迭代器,它引用映射的第一个元素。

4 map::cend

返回一个指向map的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

返回一个迭代器,它指向map中的past-the-end元素。

13 map::equal_range

返回与特定键匹配的元素范围。

14 map::erase 位置版本

位置移除地图的单个元素。

15 map::erase 位置版本

位置移除地图的单个元素。

16 map::erase

删除与键k关联的映射值。

17 map::erase 范围版本

从地图中删除元素范围。

18 map::erase 范围版本

从地图中删除元素范围。

19 map::find

查找与键k关联的元素。

20 map::get_allocator

返回与map关联的分配器。

21 map::insert 单个元素

通过在地图中插入新元素来扩展容器。

22 map::insert 提示版本

通过在地图中插入新元素来扩展容器。

23 map::insert 范围版本

通过在地图中插入新元素来扩展容器。

24 map::insert move hint verstion

通过插入新元素来扩展地图。

25 map::insert 初始化列表版本

通过从初始化列表中插入新元素来扩展映射。

26 map::key_comp

返回一个比较键的函数对象,它是此容器的构造函数参数comp的副本。

27 map::lower_bound

返回指向第一个元素的迭代器,该元素不小于键k

28 map::max_size

返回map可以保存的最大元素数。

29 map::operator= copy version

通过替换旧内容将新内容分配给地图,并在必要时修改大小。

30 map::operator= 移动版本

将一个地图的内容移动到另一个地图,并根据需要修改大小。

31 map::operator= 初始化列表版本

将元素从初始化列表复制到映射。

32 map::operator[] 复制版

如果键k与容器中的元素匹配,则method返回对该元素的引用。

33 map::operator[] 移动版本

如果键k与容器中的元素匹配,则method返回对该元素的引用。

34 map::rbegin

返回一个反向迭代器,它指向地图的最后一个元素。

35 map::rend

返回一个反向迭代器,它指向map i的反向末尾。

36 map::size

返回地图中存在的元素数。

37 map::swap

用地图x的内容交换地图的内容。

38 map::upper_bound

返回指向第一个元素的迭代器,该元素大于键k

39 map::value_comp

返回一个函数对象,用于比较std :: map :: value_type类型的对象。

非成员重载函数 (Non-member overloaded functions)

Sr.No. 方法和描述
1 operator==

测试两个地图是否相等。

2 operator!=

测试两个地图是否相等。

3 operator<

测试第一张地图是否小于其他地图。

4 map::operator<=

测试第一张图是否小于或等于其他图。

5 operator>

测试第一张地图是否大于其他地图。

6 operator>=

测试第一张图是否大于或等于其他图。

7 swap()

用地图x的内容交换地图的内容。

多图介绍

Multimap是类似数据结构的字典。 它是(键,值)对的序列,其中多个值可以与等效键相关联。 它通常被称为关联数组

在通常用于对元素进行排序的multimap键值中。 对于多图数据类型的键和值可以不同,它表示为

typedef pair<const Key, T> value_type;

Multimaps通常实现为二进制搜索树。

零大小的多重映射也是有效的。 在这种情况下,multimap.begin()和multimap.end()指向同一位置。

定义 (Definition)

下面是头文件中std :: multimap的定义

template < class Key,
           class T,
           class Compare = less<Key>,
           class Alloc = allocator<pair<const Key,T> >
           > class multimap;

参数 (Parameters)

  • Key - Key类型。

  • T - 映射值的类型。

  • Compare - 一个二元谓词,它将两个元素键作为参数并返回一个bool。

  • Alloc - 分配器对象的类型。

  • T可以由包括用户定义类型的任何其他数据类型代替。

成员类型 (Member types)

以下成员类型可以用作参数或按成员函数返回类型。

Sr.No. 会员类型 定义
1key_type 键(模板的第一个参数)
2mapped_type T(模板的第二个参数)
3key_compare 比较(模板的第三个参数)
4allocator_type Alloc(模板的第四个参数)
5value_type pair
6value_compare 嵌套函数类来比较元素
7referenceallocator_type::reference
8const_referenceallocator_type::const_reference
9pointerallocator_type::pointer
10const_pointerallocator_type::const_pointer
11iterator value_type的双向迭代器
12const_iterator const value_type的双向迭代器
13reverse_iterator 反向迭代器
14const_reverse_iterator 恒定反向迭代器
15difference_typeptrdiff_t
16size_typesize_t

来自的函数

以下是标头中所有方法的列表。

构造函数 (Constructors)

Sr.No. 方法和描述
1 multimap::multimap 默认构造函数

构造一个零元素的空多图。

2 multimap::multimap 范围构造函数

构造一个多图表,其中包含从头到尾范围内的元素。

3 multimap::multimap 复制构造函数

构造一个多图,其中包含现有多图中存在的每个元素的副本。

4 multimap::multimap move构造函数

使用移动语义构造具有其他内容的多图。

5 multimap::multimap 初始化列表构造函数

从初始化列表构造多图。

Destructor

Sr.No. 方法和描述
1 multimap::~multimap

通过释放它的内存来销毁多图对象。

成员函数 (Member functions)

Sr.No. 方法和描述
1 multimap::begin

返回一个迭代器,它引用multimap的第一个元素。

2 multimap::cbegin

返回一个常量迭代器,它引用multimap的第一个元素。

3 multimap::cend

返回一个常量迭代器,它指向multimap的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

返回一个迭代器,它指向multimap中的past-the-end元素。

12 multimap::equal_range

返回与特定键匹配的元素范围。

13 multimap::erase position version

位置移除多图的单个元素。

14 multimap::erase position version

位置移除多图的单个元素。

15 multimap::erase

删除与键k关联的映射值。

16 multimap::erase 范围版本

从multimap中删除元素范围。

17 multimap::erase 范围版本

从multimap中删除元素范围。

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 multimap::operator= copy version

通过替换旧映射将新内容分配给多图,并在必要时修改大小。

29 multimap::operator= 移动版本

将一个多图的内容移动到另一个多图,并根据需要修改大小。

30 multimap::operator= 初始化列表版本

将元素从初始化列表复制到多图。

31 multimap::rbegin

返回一个反向迭代器,它指向multimap的最后一个元素。

32 multimap::rend

返回一个反向迭代器,它指向multimap的反向末尾。

33 multimap::size

返回多图中存在的元素数。

34 multimap::swap

使用multimap x的内容交换multimap的内容。

35 multimap::upper_bound

返回指向第一个元素的迭代器,该元素大于键k

36 multimap::value_comp

返回一个函数对象,用于比较std :: multimap :: value_type类型的对象。

非成员重载函数 (Non-member overloaded functions)

Sr.No. 方法和描述
1 operator==

测试两个multimaps是否相等。

2 operator!=

测试两个multimaps是否相等。

3 operator<

测试第一个multimap是否小于其他。

4 multimap::operator<=

测试第一个multimap是否小于或等于other。

5 operator>

测试第一个multimap是否大于其他。

6 operator>=

测试第一个multimap是否大于或等于other。

7 swap()

使用multimap x的内容交换multimap的内容。

↑回到顶部↑
WIKI教程 @2018