
- 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++ 程式設計資源
- C++ 程式設計教程
- C++ 有用資源
- C++ 討論
C++ 庫 - <map>
map 簡介
Map 是一種類似字典的資料結構。它是一系列 (鍵, 值) 對的序列,其中每個唯一的鍵只關聯一個值。它通常被稱為關聯陣列.
在 map 中,鍵值通常用於對元素進行排序。對於 map,鍵和值的型別可以不同,表示為
typedef pair<const Key, T> value_type;
Map 通常以二叉搜尋樹的形式實現。
零大小的 map 也是有效的。在這種情況下,map.begin() 和 map.end() 指向相同的位置。
定義
以下是來自 <map> 標頭檔案的 std::map 的定義
template < class Key, class T, class Compare = less<Key>, class Alloc = allocator<pair<const Key,T> > > class map;
引數
Key - 鍵的型別。
T - 對映值的型別。
Compare - 一個二元謂詞,它接受兩個元素鍵作為引數並返回一個布林值。
Alloc - 分配器物件的型別。
T 可以替換為任何其他資料型別,包括使用者定義的型別。
成員型別
以下成員型別可以用作成員函式的引數或返回值型別。
序號 | 成員型別 | 定義 |
---|---|---|
1 | key_type | Key(模板的第一個引數) |
2 | mapped_type | T(模板的第二個引數) |
3 | key_compare | Compare(模板的第三個引數) |
4 | allocator_type | Alloc(模板的第四個引數) |
5 | value_type | pair<const key_type,mapped_type> |
6 | value_compare | 巢狀函式類,用於比較元素 |
7 | reference | allocator_type::reference |
8 | const_reference | allocator_type::const_reference |
9 | pointer | allocator_type::pointer |
10 | const_pointer | allocator_type::const_pointer |
11 | iterator | 雙向迭代器到value_type |
12 | const_iterator | 雙向迭代器到常量value_type |
13 | reverse_iterator | 反向迭代器 |
14 | const_reverse_iterator | 常量反向迭代器 |
15 | difference_type | ptrdiff_t |
16 | size_type | size_t |
來自 <map> 的函式
以下是來自 <map> 標頭檔案的所有方法列表。
建構函式
序號 | 方法 & 描述 |
---|---|
1 | map::map 預設建構函式
構造一個包含零個元素的空 map。 |
2 | map::map 範圍建構函式
構造一個 map,其元素數量與first到last. |
3 | map::map 複製建構函式
構造一個 map,其中包含現有 map 中每個元素的副本。 |
4 | map::map 移動建構函式
使用移動語義構造一個包含其他內容的 map。 |
5 | map::map 初始化列表建構函式 從初始化列表構造一個 map。 |
解構函式
序號 | 方法 & 描述 |
---|---|
1 | map::~map
透過釋放其記憶體來銷燬 map 物件。 |
成員函式
序號 | 方法 & 描述 |
---|---|
1 | map::at
返回與鍵關聯的對映值的引用k. |
2 | map::begin
返回一個迭代器,該迭代器引用 map 的第一個元素。 |
3 | map::cbegin
返回一個常量迭代器,該迭代器引用 map 的第一個元素。 |
4 | map::cend
返回一個指向超出末尾map 的元素。 |
5 | map::clear
透過刪除所有元素並將其大小設定為零來銷燬 map。 |
6 | map::count
返回與鍵關聯的對映值的個數k. |
7 | map::crbegin
返回一個常量反向迭代器,該迭代器指向容器 i 的最後一個元素。 |
8 | map::crend
返回一個常量反向迭代器,該迭代器指向容器 i 中第一個元素之前的理論元素。 |
9 | map::emplace
透過插入新元素擴充套件容器。 |
10 | map::emplace_hint 提示版本 使用提示作為元素的位置在 map 中插入一個新元素。 |
11 | map::empty
測試 map 是否為空。 |
12 | map::end
返回一個指向超出末尾map 中的元素。 |
13 | map::equal_range
返回與特定鍵匹配的元素範圍。 |
14 | map::erase 位置版本 從position. |
15 | map::erase 位置版本 從position. |
16 | map::erase key 刪除與鍵關聯的對映值k. |
17 | map::erase 範圍版本 從 map 中刪除元素範圍。 |
18 | map::erase 範圍版本 從 map 中刪除元素範圍。 |
19 | map::find
查詢與鍵關聯的元素k. |
20 | map::get_allocator
返回與 map 關聯的分配器。 |
21 | map::insert 單個元素 透過在 map 中插入新元素擴充套件容器。 |
22 | map::insert 提示版本 透過在 map 中插入新元素擴充套件容器。 |
23 | map::insert 範圍版本 透過在 map 中插入新元素擴充套件容器。 |
24 | map::insert 移動提示版本 透過插入新元素擴充套件 map。 |
25 | map::insert 初始化列表版本 從初始化列表擴充套件 map,插入新元素。 |
26 | map::key_comp
返回一個比較鍵的函式物件,它是此容器的建構函式引數的副本comp. |
27 | map::lower_bound
返回一個指向第一個不小於鍵的元素的迭代器k. |
28 | map::max_size
返回 map 可以容納的最大元素數。 |
29 | map::operator= 複製版本 透過替換舊內容為 map 分配新內容,並在必要時修改大小。 |
30 | map::operator= 移動版本 將一個 map 的內容移動到另一個 map 中,並在必要時修改大小。 |
31 | map::operator= 初始化列表版本 將初始化列表中的元素複製到 map 中。 |
32 | map::operator[] 複製版本 如果鍵k與容器中的元素匹配,則方法返回對該元素的引用。 |
33 | map::operator[] 移動版本 如果鍵k與容器中的元素匹配,則方法返回對該元素的引用。 |
34 | map::rbegin
返回一個指向 map 的最後一個元素的反向迭代器。 |
35 | map::rend
返回一個指向 map 的反向末尾的反向迭代器 i。 |
36 | map::size
返回 map 中存在的元素數。 |
37 | map::swap
將 map 的內容與 map x 的內容交換。 |
38 | map::upper_bound
返回一個指向第一個大於鍵的元素的迭代器k. |
39 | map::value_comp
返回一個比較型別物件的函式物件std::map::value_type. |
非成員過載函式
序號 | 方法 & 描述 |
---|---|
1 | operator==
測試兩個 map 是否相等。 |
2 | operator!= 測試兩個 map 是否相等。 |
3 | operator< 測試第一個 map 是否小於另一個 map。 |
4 | map::operator<= 測試第一個 map 是否小於或等於另一個 map。 |
5 | operator>
測試第一個 map 是否大於另一個 map。 |
6 | operator>=
測試第一個 map 是否大於或等於另一個 map。 |
7 | swap()
將 map 的內容與 map x 的內容交換。 |
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;
引數
Key - 鍵的型別。
T - 對映值的型別。
Compare - 一個二元謂詞,它接受兩個元素鍵作為引數並返回一個布林值。
Alloc - 分配器物件的型別。
T 可以替換為任何其他資料型別,包括使用者定義的型別。
成員型別
以下成員型別可以用作成員函式的引數或返回值型別。
序號 | 成員型別 | 定義 |
---|---|---|
1 | key_type | Key(模板的第一個引數) |
2 | mapped_type | T(模板的第二個引數) |
3 | key_compare | Compare(模板的第三個引數) |
4 | allocator_type | Alloc(模板的第四個引數) |
5 | value_type | pair<const key_type,mapped_type> |
6 | value_compare | 巢狀函式類,用於比較元素 |
7 | reference | allocator_type::reference |
8 | const_reference | allocator_type::const_reference |
9 | pointer | allocator_type::pointer |
10 | const_pointer | allocator_type::const_pointer |
11 | iterator | 雙向迭代器到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,其元素數量與first到last. |
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。 |
5 | multimap::count
返回與鍵關聯的 multimapped 值的個數k. |
6 | multimap::crbegin
返回一個常量反向迭代器,該迭代器指向容器的最後一個元素。 |
7 | multimap::crend
返回一個常量反向迭代器,該迭代器指向容器中第一個元素之前的理論元素。 |
8 | multimap::emplace
透過插入新元素擴充套件容器。 |
9 | multimap::emplace_hint 提示版本 使用提示作為元素的位置,在多重對映中插入一個新元素。 |
10 | multimap::empty
測試多重對映是否為空。 |
11 | multimap::end
返回一個指向超出末尾多重對映中的元素。 |
12 | multimap::equal_range
返回與特定鍵匹配的元素範圍。 |
13 | multimap::erase 位置版本 從多重對映中刪除單個元素。position. |
14 | multimap::erase 位置版本 從多重對映中刪除單個元素。position. |
15 | multimap::erase key
刪除與鍵關聯的對映值k. |
16 | multimap::erase 範圍版本
從多重對映中刪除元素範圍。 |
17 | multimap::erase 範圍版本 從多重對映中刪除元素範圍。 |
18 | multimap::find
查詢與鍵關聯的元素k. |
19 | multimap::get_allocator
返回與多重對映關聯的分配器。 |
20 | multimap::insert 單個元素 透過在多重對映中插入新元素來擴充套件容器。 |
21 | multimap::insert 提示版本 透過在多重對映中插入新元素來擴充套件容器。 |
22 | multimap::insert 範圍版本
透過在多重對映中插入新元素來擴充套件容器。 |
23 | multimap::insert 移動提示版本 透過插入新元素來擴充套件多重對映。 |
24 | multimap::insert 初始化列表版本
透過從初始化列表中插入新元素來擴充套件多重對映。 |
25 | multimap::key_comp
返回一個比較鍵的函式物件,它是此容器的建構函式引數的副本comp. |
26 | multimap::lower_bound
返回一個指向第一個不小於鍵的元素的迭代器k. |
27 | multimap::max_size
返回多重對映可以容納的最大元素數。 |
28 | multimap::operator= 複製版本 透過替換舊內容為多重對映分配新內容,並在必要時修改大小。 |
29 | multimap::operator= 移動版本 將一個多重對映的內容移動到另一個多重對映中,並在必要時修改大小。 |
30 | multimap::operator= 初始化列表版本 將初始化列表中的元素複製到多重對映中。 |
31 | multimap::rbegin
返回一個反向迭代器,該迭代器指向多重對映的最後一個元素。 |
32 | multimap::rend
返回一個反向迭代器,該迭代器指向多重對映的反向末尾。 |
33 | multimap::size
返回多重對映中存在的元素數量。 |
34 | multimap::swap
交換多重對映的內容與多重對映x的內容。 |
35 | multimap::upper_bound
返回一個指向第一個大於鍵的元素的迭代器k. |
36 | multimap::value_comp
返回一個比較型別物件的函式物件std::multimap::value_type. |
非成員過載函式
序號 | 方法 & 描述 |
---|---|
1 | operator==
測試兩個多重對映是否相等。 |
2 | operator!=
測試兩個多重對映是否相等。 |
3 | operator<
測試第一個多重對映是否小於另一個。 |
4 | multimap::operator<=
測試第一個多重對映是否小於或等於另一個。 |
5 | operator>
測試第一個多重對映是否大於另一個。 |
6 | operator>=
測試第一個多重對映是否大於或等於另一個。 |
7 | swap()
交換多重對映的內容與多重對映x的內容。 |