
- 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。 |