用哈希表封装myunordered_map和myunordered_set

目录

1. 源码及框架分析

2. 模拟实现unordered_map和unordered_set

2.1 实现出复用哈希表的框架,并支持insert

2.2 支持iterator的实现

2.2.1 iterator核心源代码

2.2.2 iterator实现思路分析

2.2.3 iterator完善

2.2.4 const_iterator

2.3 map支持[]

2.4 转整型的仿函数

2.5 其他

2.6 unordered_map和unordered_set代码实现


1. 源码及框架分析

SGI-STL30版本源代码中没有unordered map和unordered set,SGl-STL30版本是C++11之前的STL版本,这两个容器是C++11之后才更新的。但是SGI-STL30实现了哈希表,只容器的名字是hash_map和hash_set,他是作为非标准的容器出现的,非标准是指非C++标准规定必须实现的,源代码在hash_map/hash_set/stl_hash_map/stl_hash_set/stl_hashtable.h中hash_map和hash_set的实现结构框架核心部分截取出来如下:

// stl_hash_set
template ,
	class EqualKey = equal_to,
	class Alloc = alloc>
	class hash_set
{
private

你可能感兴趣的:(C++,c++,数据结构,开发语言,算法,哈希算法,散列表)