C++ 库 - <multimap>



multimap 简介

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

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

typedef pair<const Key, T> value_type;

Multimap 通常实现为二叉搜索树。

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

定义

以下是 <multimap> 头文件中 std::multimap 的定义

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

参数

  • − 键的类型。

  • T − 映射值的类型。

  • 比较 − 一个二元谓词,它接受两个元素键作为参数并返回一个布尔值。

  • 分配器 − 分配器对象的类型。

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

成员类型

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

序号 成员类型 定义
1 key_type 键(模板的第一个参数)
2 mapped_type T(模板的第二个参数)
3 key_compare 比较(模板的第三个参数)
4 allocator_type 分配器(模板的第四个参数)
5 value_type pair<const key_type,mapped_type>
6 value_compare 用于比较元素的嵌套函数类
7 引用 allocator_type::reference
8 常量引用 allocator_type::const_reference
9 指针 allocator_type::pointer
10 常量指针 allocator_type::const_pointer
11 迭代器 双向迭代器到value_type
12 const_iterator 指向常量的双向迭代器value_type
13 reverse_iterator 反向迭代器
14 const_reverse_iterator 常量反向迭代器
15 difference_type ptrdiff_t
16 size_type size_t

<multimap> 中的函数

以下是 <multimap> 头文件中所有方法的列表。

构造函数

序号 方法和描述
1 multimap::multimap 默认构造函数

构造一个具有零个元素的空 multimap。

2 multimap::multimap 范围构造函数

构造一个 multimap,其元素数量与范围内的元素数量相同firsttolast.

3 multimap::multimap 复制构造函数

构造一个 multimap,其中包含现有 multimap 中每个元素的副本。

4 multimap::multimap 移动构造函数

使用移动语义构造一个包含其他内容的 multimap。

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

从初始化列表构造一个 multimap。

析构函数

序号 方法和描述
1 multimap::~multimap

通过释放其内存来销毁 multimap 对象。

成员函数

序号 方法和描述
1 multimap::begin

返回一个指向 multimap 的第一个元素的迭代器。

2 multimap::cbegin

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

3 multimap::cend

返回一个指向超出末尾multimap 元素的常量迭代器。

4 multimap::clear

通过删除所有元素并将 multimap 的大小设置为零来销毁 multimap。

5 multimap::count

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

6 multimap::crbegin

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

7 multimap::crend

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

8 multimap::emplace

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

9 multimap::emplace_hint 提示版本

使用提示作为元素位置在 multimap 中插入一个新元素。

10 multimap::empty

测试 multimap 是否为空。

11 multimap::end

返回一个指向超出末尾multimap 中的元素。

12 multimap::equal_range

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

13 multimap::erase

erase() 函数用于从容器中删除元素。

14 multimap::find

查找与键关联的元素k.

15 multimap::get_allocator

返回与 multimap 关联的分配器。

16 multimap::insert

C++ insert() 函数用于向 multimap 容器添加元素。

17 multimap::key_comp

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

18 multimap::lower_bound

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

19 multimap::max_size

返回 multimap 可以容纳的最大元素数。

20 multimap::operator=

operator=() 函数用于将一个 multimap 的内容赋值给另一个 multimap

21 multimap::rbegin

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

22 multimap::rend

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

23 multimap::size

返回 multimap 中存在的元素数量。

24 multimap::swap

将 multimap 的内容与 multimap x 的内容交换。

25 multimap::upper_bound

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

26 multimap::value_comp

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

非成员重载函数

序号 方法和描述
1 operator==

测试两个 multimap 是否相等。

2 operator!=

测试两个 multimap 是否相等。

3 operator<

测试第一个 multimap 是否小于另一个 multimap。

4 operator<=

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

5 operator>

测试第一个 multimap 是否大于另一个 multimap。

6 operator>=

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

广告