C ++库 -<map>

地图简介

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

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

typedef pair<const Key, T> value_type;

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

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

定义

下面是std :: map的定义来自< map>头文件

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

参数

  • Key : 密钥的类型.

  • T : 映射值的类型.

  • 比较 : 一个二元谓词,它将两个元素键作为参数并返回一个bool.

  • Alloc : 分配器对象的类型.

T可以被任何其他数据类型替换,包括用户定义的类型.

成员类型

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

Sr.No.会员类型定义
1key_type键(模板的第一个参数)
2mapped_typeT(模板的第二个参数)
3key_compare比较(第三个参数)模板)
4allocator_typeAlloc(模板的第四个参数)
5value_typepair< const key_type,mapped_type>
6value_compare用于比较元素的嵌套函数类
7referenceallocator_type :: reference
8const_referenceallocator_type :: const_reference
9指针allocator_type :: pointer
10const_pointerallocator_type :: const_pointer
11iterator value_type的双向迭代器
12const_iteratorconst
13reverse_iterator反向迭代器
14const_reverse_iterator常量反向迭代器
15difference_typeptrdiff_t
16size_typesize_t

来自< map>的函数

以下是来自< map>的所有方法的列表标题.

构造函数

Sr.No .方法&说明
1map::map  默认构造函数

构造一个零元素的空地图.

2map :: map  范围构造函数

构造一个包含范围内的元素的地图 to last .

3map :: map   copy constructor

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

4map :: map   move constructor

使用移动语义构造一个包含其他内容的地图.

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

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

析构函数

Sr.No.方法&安培;说明
1map:::map

通过解除分配内存来销毁地图对象.

成员函数

Sr.No.方法&说明
1map::at

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

2map :: begin

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

3map :: cbegin

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

4map: :cend

返回一个常量迭代器,它指向地图的 past-the-end 元素.

5map :: clear

通过删除所有元素并将地图大小设置为零来销毁地图.

6map :: count

返回与键 k 关联的映射值的数量.

7map :: crbegin

返回一个指向容器i的最后一个元素的常量反向迭代器.

8map :: crend

返回一个常量反向迭代器,它指向容器i中第一个元素之前的理论元素.

9map :: emplace

通过插入新元素来扩展容器.

10map :: emplace_hint  提示版本

使用提示作为元素的位置在地图中插入新元素.

11map :: empty

测试地图是否为空.

12map :: end

返回一个指向地图中 past-the-end 元素的迭代器.

13map :: equal_range

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

14map :: erase   position version

删除单个元素 position 的地图.

15map :: erase   position version

删除单个 position 的地图元素.

16map :: erase   key

删除映射与键 k 相关联的值.

17map :: erase  范围版本

删除范围来自t的元素他映射.

18map :: erase  范围版本

从地图中删除元素范围.

19map::find

查找与键 k 相关联的元素.

20map :: get_allocator

返回与map关联的分配器.

21map :: insert  单个元素

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

22map :: insert  提示版本

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

23map :: insert   range version

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

24map: :insert   move hint verstion

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

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

通过从初始化列表中插入新元素来扩展地图.

26map :: key_comp

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

27map :: lower_bound

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

28map :: max_size

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

29map :: operator =   copy version

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

30map :: operator =   move version

将一张地图的内容移动到另一张地图,并在必要时修改大小.

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

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

32map :: operator []   copy version

if key k 匹配容器中的元素,然后方法返回对元素的引用.

33map :: operator []  移动版本

如果ke y k 匹配容器中的元素,然后方法返回对元素的引用.

34map :: rbegin

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

35map :: rend

返回一个反向迭代器,它指向地图的反面i.

36map :: size

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

37map :: swap

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

38map: :upper_bound

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

39map :: value_comp

返回一个比较 std :: map :: value_type 类型的对象的函数对象.

非会员重载函数

Sr.No.方法&说明
1operator==

测试两张地图是否相等.

2operator!=

测试两张地图是否相等.

3operator<

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

4map :: operator&lt =

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

5operator>

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

6operator> =

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

7swap()

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

multimap简介

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

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

typedef pair<const Key, T> value_type;

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

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

定义

下面是std :: multimap的定义来自< multimap>头文件

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

参数

  • Key : 密钥的类型.

  • T : 映射值的类型.

  • 比较 : 一个二元谓词,它将两个元素键作为参数并返回一个bool.

  • Alloc : 分配器对象的类型.

  • T可以被任何其他数据类型替换,包括用户定义的类型.

成员类型

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

Sr.No.会员类型定义
1key_type键(模板的第一个参数)
2mapped_typeT(模板的第二个参数)
3key_compare比较(第三个参数)模板)
4allocator_typeAlloc(模板的第四个参数)
5value_typepair< const key_type,mapped_type>
6value_compare用于比较元素的嵌套函数类
7referenceallocator_type :: reference
8const_referenceallocator_type :: const_reference
9指针allocator_type :: pointer
10const_pointerallocator_type :: const_pointer
11iterator value_type的双向迭代器
12const_iteratorconst
13reverse_iterator反向迭代器
14const_reverse_iterator常量反向迭代器
15difference_typeptrdiff_t
16size_typesize_t

来自< multimap>的函数

以下是来自< multimap>的所有方法的列表标题.

构造函数

Sr.No .方法&说明
1multimap::multimap  默认构造函数

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

2multimap :: multimap  范围构造函数

构造一个多元图,其元素数量在 first last

3multimap :: multimap  复制构造函数

构造一个多图,其中包含现有元素的副本multimap.

4m ultimap :: multimap   move constructor

使用move语义构造一个包含其他内容的多图.

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

从初始化列表构造一个多图.

析构函数

Sr.No.方法&说明
1multimap::multimap

通过解除分配内存来销毁多图对象.

成员函数

Sr.No.方法&说明
1multimap::begin

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

2multimap :: cbegin

返回一个常量迭代器,它引用多图的第一个元素.

3multimap :: cend

返回一个常量迭代器,它指向多图的 past-the-end 元素.

4multimap :: clear

通过删除所有元素并设置多个大小来销毁多图映射为零.

5multimap :: count

返回与键 k 关联的多映射值的数量.

6multimap :: crbegin

返回一个指向容器最后一个元素的常量反向迭代器.

7multimap :: crend

返回一个常量反向迭代器,它指向容器中第一个元素之前的理论元素.

8multimap::emplace

扩展容器插入新元素.

9multimap :: emplace_hint  提示版

使用提示在多图中插入新元素元素的位置.

10multimap :: empty

测试multimap是否为空.

11multimap :: end

返回一个指向多图中 past-the-end 元素的迭代器.

12multimap::equal_range

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

13multimap::erase   position version

position 中删除多图的单个元素.

14multimap :: erase   position version

position 中删除多图的单个元素.

15multimap::erase   key

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

16multimap :: erase   range version

从中删除元素的范围multimap.

17multimap :: erase  范围版本

从多图中删除元素范围.

18multimap :: find

查找与键 k 相关联的元素.

19multimap::get_allocator

返回与multimap关联的分配器.

20multimap :: insert  单个元素

通过在multimap中插入新元素来扩展容器.

21multimap :: insert  提示版

通过在multimap中插入新元素来扩展容器.

22multimap :: insert  范围版本

通过在多图中插入新元素来扩展容器.

23multimap :: insert   move hint verstion

通过插入新元素来扩展多图.

24multimap :: insert  初始化列表版本

通过插入新元素来扩展多图初始化列表.

25multimap :: key_comp

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

26multimap :: lower_bound

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

27multimap :: max_size

返回最大元素数量由multimap持有.

28多map :: operator =   copy version

通过替换旧的内容为多图分配新内容,并在必要时修改大小.

29multimap :: operator =  移动版本

将一个多图的内容移动到另一个,并在必要时修改大小.

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

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

31multimap :: rbegin

返回指向多图的最后一个元素的反向迭代器.

32multimap :: rend

返回a reverse iterator which points to the reverse end of the multimap.

33multimap::size

Returns the number of elements present in the multimap.

34multimap::swap

Exchanges the content of multimap with contents of multimap x.

35multimap::upper_bound

Returns an iterator pointing to the first element which is greater than key k.

36multimap::value_comp

Returns a function object that compares objects of type std::multimap::value_type.

Non-member overloaded functions

Sr.No.Method & Description
1operator==

Tests whether two multimaps are equal or not.

2operator!=

Tests whether two multimaps are equal or not.

3operator<

Tests whether first multimap is less than other or not.

4multimap::operator&lt=

Tests whether first multimap is less than or equal to other or not.

5operator>

Tests whether first multimap is greater than other or not.

6operator>=

Tests whether first multimap is greater than or equal to other or not.

7swap()

Exchanges the content of multimap with contents of multimap x.