欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 从零开始手写STL库:unordered_set

从零开始手写STL库:unordered_set

2024/10/24 19:23:33 来源:https://blog.csdn.net/weixin_48013375/article/details/141360559  浏览:    关键词:从零开始手写STL库:unordered_set

从零开始手写STL库–unordered_set的实现

Gihub链接:miniSTL


文章目录

  • 从零开始手写STL库–unordered_set的实现
  • 一、unordered_set是什么
  • 二、unordered_set要包含什么函数
  • 总结


一、unordered_set是什么

在STL中,std::unordered_set 是一个无序关联容器,其内部基于哈希表实现。

哈希表在本流程中已经实现过了,使用key来储存,储存内容为value,而unordered_set实际上就是一层封装

但是注意要把value屏蔽掉,因为set是一维的

二、unordered_set要包含什么函数

就是非常简单的封装,包含插入删除查找函数即可

template <typename Key> class Unordered_set 
{
public:Unordered_set() : hashtable(){};~Unordered_set(){}bool empty() const noexcept { return hashtable.size() == 0; }size_t size() const noexcept { return hashtable.size(); }void clear() noexcept { hashtable.clear(); }void insert(Key key) { hashtable.insertKey(key); }void erase(Key key) { hashtable.erase(key); }bool find(const Key &key) { return hashtable.find(key) != nullptr; }private:myHashTable<Key, Key> hashtable;
};

总结

1、注意UnSet和Set的区别,在于底层实现不同,前者是哈希表,后者是红黑树
2、UnSet的搜索效率是O(1)面试真题,被问过了
其他就没什么要注意的了,了解哈希表就能说出来unordered_set的特性了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com