C++中自定义哈希表的实现
来源:14-5 实现属于我们自己的哈希表

阿阳2017
2023-01-26
老师你好,如果想用C++实现一个这节课的自定义哈希表,STL库中有类似TreeMap这样的数据结构吗?而且Java的Object类自带hashCode这样的方法,去计算hash值,这样对于所有的自定义类都可以自动计算hash值;而c++中,不知道有什么对应的数据结构;或者有什么好的思路去实现呢?
写回答
1回答
-
首先,Java 中的 TreeMap 不是哈希表,是红黑树(所以叫 Tree。)
Java 中的 TreeMap,对应 C++ 中的 map;Java 中的 TreeSet,对应 C++ 中的 set。
Java 中的哈希表结构,对应 HashMap 和 HashSet。相应的,C++ 中的哈希表结构,对应 unordered_map 和 unordered_set。
Java 中的 HashMap,对应 C++ 中的 unordered_map;Java 中的 HashSet,对应 C++ 中的 unordered_set。
如果想在 C++ 中的自定义类中做自定义的哈希函数,需要使用 std::hash,不是 C++ 课程,对 C++ 的机制就不赘述了,感兴趣可以参考类似这样的讨论:https://stackoverflow.com/questions/17016175/c-unordered-map-using-a-custom-class-type-as-the-key
继续加油!:)
012023-01-26
相似问题