目录
1、unordered系列关联容器
1.1、unordered_map
1.1.1、unordered_map介绍
1.1.2、unordered_map接口函数
1.1.3、unordered_set接口函数
2、底层结构
2.1、哈希概念
2.2、哈希冲突
2.3、哈希函数
常见哈希函数
2.4 哈希冲突解决
2.4.1 闭散列
2.4.2、开散列
3、哈希的应用
3.1、位图
3.2、布隆过滤器
3.2.1、布隆过滤器的查找
3.2.2、布隆过滤器删除
3.2.3、布隆过滤器优点
3.2.4、布隆过滤器缺陷
1、构造函数
2、unordered_map的容量
函数声明 | 功能介绍 |
bool empty() const
|
检测unordered_map是否为空
|
size_t size() const
|
获取unordered_map的有效元素个数
|
3、unordered_map的迭代器
函数声明 | 功能介绍 |
begin
|
返回unordered_map第一个元素的迭代器
|
end
|
返回unordered_map最后一个元素下一个位置的迭代器
|
cbegin
|
返回unordered_map第一个元素的const迭代器
|
cend
|
返回unordered_map最后一个元素下一个位置的const迭代器
|
4、unordered_map的元素访问
函数声明 | 功能介绍 |
operator[]
|
返回与key对应的value,没有一个默认值
|
5、 unordered_map的查询
函数声明 | 功能介绍 |
iterator find(const K& key)
|
返回key在哈希桶中的位置
|
size_t count(const K& key)
|
返回哈希桶中关键码为key的键值对的个数
|
6、unordered_map的修改
函数声明 | 功能介绍 |
insert
|
向容器中插入键值对
|
erase
|
删除容器中的键值对
|
void clear()
|
清空容器中有效元素个数
|
void swap(unordered_map&)
|
交换两个容器中的元素
|
7、unordered_map的桶操作
函数声明 | 功能介绍 |
size_t bucket_count()const
|
返回哈希桶中桶的总个数
|
size_t bucket_size(size_t n)const
|
返回n号桶中有效元素的总个数
|
size_t bucket(const K& key)
|
返回元素key所在的桶号
|
1、构造函数
2、unordered_set的容量
函数声明 | 功能介绍 |
bool empty() const
|
检测unordered_set是否为空
|
size_t size() const
|
获取unordered_set的有效元素个数
|
3、unordered_map的迭代器
函数声明 | 功能介绍 |
begin
|
返回unordered_set第一个元素的迭代器
|
end
|
返回unordered_set最后一个元素下一个位置的迭代器
|
cbegin
|
返回unordered_set第一个元素的const迭代器
|
cend
|
返回unordered_set最后一个元素下一个位置的const迭代器
|
4、 unordered_set的查询
函数声明 | 功能介绍 |
iterator find(const K& key)
|
返回key在哈希桶中的位置
|
size_t count(const K& key)
|
返回哈希桶中关键码为key的键值对的个数
|
5、unordered_set的修改
函数声明 | 功能介绍 |
insert
|
向容器中插入键值对
|
erase
|
删除容器中的键值对
|
void clear()
|
清空容器中有效元素个数
|
void swap(unordered_set&)
|
交换两个容器中的元素
|
6、unordered_set的桶操作
函数声明 | 功能介绍 | ||
size_t bucket_count()const
|
返回哈希桶中桶的总个数
|
||
size_t bucket_size(size_t n)const
|
返回n号桶中有效元素的总个数
|
||
size_t bucket(const K& key)
|
返回元素key所在的桶号 |
unordered系列的关联式容器之所以效率比较高,是因为其底层使用了哈希结构