File tree Expand file tree Collapse file tree 1 file changed +3
-3
lines changed Expand file tree Collapse file tree 1 file changed +3
-3
lines changed Original file line number Diff line number Diff line change 12
12
13
13
## 哈希表
14
14
15
- 首先什么是 哈希表 ,哈希表(英文名字为Hash table,国内也有一些算法书籍翻译为散列表,大家看到这两个名称知道都是指hash table就可以了)。
15
+ 首先什么是哈希表 ,哈希表(英文名字为Hash table,国内也有一些算法书籍翻译为散列表,大家看到这两个名称知道都是指hash table就可以了)。
16
16
17
17
> 哈希表是根据关键码的值而直接进行访问的数据结构。
18
18
19
- 这么这官方的解释可能有点懵 ,其实直白来讲其实数组就是一张哈希表。
19
+ 这么官方的解释可能有点懵 ,其实直白来讲其实数组就是一张哈希表。
20
20
21
21
哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,如下图所示:
22
22
@@ -113,7 +113,7 @@ std::unordered_map 底层实现为哈希表,std::map 和std::multimap 的底
113
113
114
114
其他语言例如:java里的HashMap ,TreeMap 都是一样的原理。可以灵活贯通。
115
115
116
- 虽然std::set、std ::multiset 的底层实现是红黑树,不是哈希表,std::set、std::multiset 使用红黑树来索引和存储, 不过给我们的使用方式,还是哈希法的使用方式,即key和value 。所以使用这些数据结构来解决映射问题的方法,我们依然称之为哈希法。 map也是一样的道理。
116
+ 虽然std::set和std ::multiset 的底层实现基于红黑树而非哈希表,它们通过红黑树来索引和存储数据。 不过给我们的使用方式,还是哈希法的使用方式,即依靠键(key)来访问值(value) 。所以使用这些数据结构来解决映射问题的方法,我们依然称之为哈希法。std:: map也是一样的道理。
117
117
118
118
这里在说一下,一些C++的经典书籍上 例如STL源码剖析,说到了hash_set hash_map,这个与unordered_set,unordered_map又有什么关系呢?
119
119
You can’t perform that action at this time.
0 commit comments