boolan——c++学习笔记之STL哈希表探究
来源:互联网 发布:阿里云上海公司地址 编辑:程序博客网 时间:2024/06/01 08:56
一、简介
c++STL容器unordered_set、unordered_map、unordered_multiset、unordered_multimap内部是用哈希表实现的,以下将详细介绍c++STL哈希表的实现。
二、哈希表排列结构
1、哈希表buckets个数大于元素个数,当元素个数大于等于buckets个数时,哈希表将rebuild,扩大buckets个数,GNU C2.9 buckets个数增量表如下图所示,默认为53,增量为质素,大小因编译器不同可能不一样。
2、哈希表中key不能被改变,数据可以更改。
3、哈希命中到同一位置,将以链式存储元素。
三、代码分析
1、GNU C 2.9实现模板hashtable需要传入6个参数,
Value:数据+键值
Key:键值
HashFun:哈希函数,用以返回一个哈希值,再经过运算得到元素存放位置
ExtractKey:从value中提取key
EquelKey:比较key的方式
Alloc:分配器
四、哈希表应用
1、直接运用容器的hashtable,传入相应参数,添加元素到哈希表中。
五、STL容器unordered_set的哈希表应用
1、unordered_set、unordered_map、unordered_multiset、unordered_multimap模板定义,内部均使用了hashtable。
2、unordered_set容器使用。
0 0
- boolan——c++学习笔记之STL哈希表探究
- boolan——c++学习笔记之STL简介
- boolan——c++学习笔记之STL迭代器分类
- boolan——c++学习笔记之c++转换函数
- boolan——c++学习笔记之pointer-like classes
- boolan——c++学习笔记之容器
- boolan——c++学习笔记之容器探索
- boolan——c++学习笔记之设计模式一
- boolan——c++学习笔记之设计模式二
- boolan——c++学习笔记之设计模式三
- boolan——c++学习笔记1
- C++—STL学习笔记
- boolan——c++学习笔记之内存分配
- boolan——c++学习笔记之类关系
- [Boolan]第一周学习笔记——rico风
- [Boolan]第二周学习笔记——rico风
- boolan——c++学习笔记之多态对象模型
- C++ STL Vector容器学习 (Boolan学习笔记第7周)
- 自定义Dialog宽度占满屏幕
- 欢迎使用CSDN-markdown编辑器
- Spring 核心技术——IoC 之 DI (1)
- Nginx源码分析与实践---ngx_command_t
- 判断一个二叉树是不是另一个二叉树的子结构
- boolan——c++学习笔记之STL哈希表探究
- CSU 1513 Kick the ball! 点球大战(DFS)
- SSL 1653——数字游戏
- 文章标题
- [SMOJ1711]多滋味的咖啡
- bzoj 2734: 2734: [HNOI2012]集合选数 (状压DP)
- 文档的相似度(1)--Jaccard相似度与文档的shingling
- 1298 圆与三角形(计算几何)
- 关于初学python的一点问题总结(一)