C++庫 - <unordered_set>



介紹

它是一個關聯容器,以無特定順序儲存唯一元素,並允許根據其值快速檢索單個元素。

定義

以下是std::unordered_set的定義

template < class Key, class Hash = hash<Key>, class Pred = equal_to<Key>, class Alloc = allocator<Key> > class unordered_set;

引數

  • - 它定義了元素的型別。
  • 雜湊 - 它是一個一元函式物件。
  • 謂詞 - 它是一個二元謂詞,它接受與元素型別相同的兩個引數並返回一個布林值。
  • 分配器 - 它定義了分配器的型別。

成員型別

以下成員型別可用作成員函式的引數或返回型別。

成員型別 定義 備註
key_type 它是第一個模板引數 ()
value_type 它是第一個模板引數 () key_type
hasher 它是第二個模板引數 (Hash) 預設為hash<key_type>
key_equal 它是第三個模板引數 (Pred) 預設為equal_to<key_type>
allocator_type 它是第四個模板引數 (Alloc) 預設為allocator<value_type>
reference Alloc::reference
const_reference Alloc::const_reference
pointer Alloc::pointer 對於預設分配器value_type*
const_pointer Alloc::const_pointer 對於預設分配器const value_type*
iterator 一個指向const value_type 的可轉換const_iterator
const_iterator 一個指向const value_type *
local_iterator 一個指向const value_type 的可轉換const_local_iterator
const_local_iterator 一個指向const value_type *
size_type 一個無符號整型 通常與size_t相同
difference_type 一個有符號整型 通常與ptrdiff_t相同

成員函式

以下是成員函式列表

序號 方法及描述

operator=

用於賦值內容。

容量

序號 容量及描述
1

empty

用於測試容器是否為空。

2

size

返回容器大小。

3

max_size

返回最大大小。

迭代器

序號 迭代器及描述
1

begin

返回指向開頭的迭代器。

2

end

返回指向結尾的迭代器。

3

cbegin

返回指向開頭的const_iterator。

4

cend

返回指向結尾的const_iterator。

元素查詢

序號 元素查詢及描述
1

find

用於獲取指向元素的迭代器。

2

count

用於計算具有特定鍵的元素個數。

3

equal_range

用於獲取具有特定鍵的元素範圍。

修改器

序號 修改器及描述
1

emplace

用於構造和插入元素。

2

emplace_hint

用於使用提示構造和插入元素。

3

insert

用於插入元素。

4

erase

用於刪除元素。

5

clear

用於清除內容。

6

swap

用於交換內容。

序號 桶及描述
1

bucket_count

返回桶的數量。

2

max_bucket_count

返回最大桶的數量。

3

bucket_size

返回桶的大小。

4

bucket

查詢元素的桶。

雜湊策略

序號 雜湊策略及描述
1

load_factor

返回負載因子。

2

max_load_factor

用於獲取或設定最大負載因子。

3

rehash

用於設定桶的數量。

4

reserve

請求更改桶的容量

觀察者

序號 觀察者及描述
1

hash_function

用於獲取雜湊函式。

2

key_eq

用於獲取鍵等價謂詞。

3

get_allocator

用於獲取分配器。

非成員過載函式

序號 非成員函式過載及描述
1

operator==

測試兩個對映是否相等。

2

operator!=

測試兩個對映是否相等。

3

swap

它交換兩個unordered_set容器的內容。

廣告