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。

廣告