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容器的内容。

广告