- C 标准库
- C 标准库
- C++ 标准库
- C++ 库 - 首页
- C++ 库 - <fstream>
- C++ 库 - <iomanip>
- C++ 库 - <ios>
- C++ 库 - <iosfwd>
- C++ 库 - <iostream>
- C++ 库 - <istream>
- C++ 库 - <ostream>
- C++ 库 - <sstream>
- C++ 库 - <streambuf>
- C++ 库 - <atomic>
- C++ 库 - <complex>
- C++ 库 - <exception>
- C++ 库 - <functional>
- C++ 库 - <limits>
- C++ 库 - <locale>
- C++ 库 - <memory>
- C++ 库 - <new>
- C++ 库 - <numeric>
- C++ 库 - <regex>
- C++ 库 - <stdexcept>
- C++ 库 - <string>
- C++ 库 - <thread>
- C++ 库 - <tuple>
- C++ 库 - <typeinfo>
- C++ 库 - <utility>
- C++ 库 - <valarray>
- C++ STL 库
- C++ 库 - <array>
- C++ 库 - <bitset>
- C++ 库 - <deque>
- C++ 库 - <forward_list>
- C++ 库 - <list>
- C++ 库 - <map>
- C++ 库 - <multimap>
- C++ 库 - <queue>
- C++ 库 - <priority_queue>
- C++ 库 - <set>
- C++ 库 - <stack>
- C++ 库 - <unordered_map>
- C++ 库 - <unordered_set>
- C++ 库 - <vector>
- C++ 库 - <algorithm>
- C++ 库 - <iterator>
- C++ 高级库
- C++ 库 - <any>
- C++ 库 - <barrier>
- C++ 库 - <bit>
- C++ 库 - <chrono>
- C++ 库 - <cinttypes>
- C++ 库 - <clocale>
- C++ 库 - <condition_variable>
- C++ 库 - <coroutine>
- C++ 库 - <cstdlib>
- C++ 库 - <cstring>
- C++ 库 - <cuchar>
- C++ 库 - <charconv>
- C++ 库 - <cfenv>
- C++ 库 - <cmath>
- C++ 库 - <ccomplex>
- C++ 库 - <expected>
- C++ 库 - <format>
- C++ 库 - <future>
- C++ 库 - <flat_set>
- C++ 库 - <flat_map>
- C++ 库 - <filesystem>
- C++ 库 - <generator>
- C++ 库 - <initializer_list>
- C++ 库 - <latch>
- C++ 库 - <memory_resource>
- C++ 库 - <mutex>
- C++ 库 - <mdspan>
- C++ 库 - <optional>
- C++ 库 - <print>
- C++ 库 - <ratio>
- C++ 库 - <scoped_allocator>
- C++ 库 - <semaphore>
- C++ 库 - <source_location>
- C++ 库 - <span>
- C++ 库 - <spanstream>
- C++ 库 - <stacktrace>
- C++ 库 - <stop_token>
- C++ 库 - <syncstream>
- C++ 库 - <system_error>
- C++ 库 - <string_view>
- C++ 库 - <stdatomic>
- C++ 库 - <variant>
- C++ STL 库速查表
- C++ STL - 速查表
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。 |