前言:本篇文章继续分享新的容器unordered_map和set。前边我们分享过map和set,其底层为红黑树,而unordered_map和set的底层则为哈希表,因此在unordered_map和set的实现中,我们可以效仿许多在map和set的中就分享过的一些知识,所以在本篇文章中,就不对分享过的知识进行重复讲解。 而unordered_map和set与map和set的区别,即为红黑树和哈希表的区别。 目录 1.unordered_map 2.unordered_set 一.修改hash 我们所实现的普通哈希表肯定是无法直接拿来作为unordered_map和set的底层代码的,所以我们需要对其进行优化修改,完整代码如下: template<class K> struct HashFunc { size_t operator()(const K& key) { return (size_t)key; } }; struct HashStringFunc { size_t operator()(const string& s) { size_t hash = 0; for...