set与unordered_set的区别

文章转载自:https://www.cnblogs.com/Jawen/p/10821702.html

  1. set基于红黑树实现,红黑树具有自动排序的功能,因此map内部所有的数据,在任何时候,都是有序的。
  2. unordered_set基于哈希表,数据插入和查找的时间复杂度很低,几乎是常数时间,而代价是消耗比较多的内存,无自动排序功能。底层实现上,使用一个下标范围比较大的数组来存储元素,形成很多的桶,利用hash函数对key进行映射到不同区域进行保存。

总结

set基于红黑树(一种自平衡二叉查找树)实现,搜索、插入、删除的时间复杂度为O(logn)。unordered_set基于哈希表,实现复杂度为O(1)。当不需要自动有序且可以元素类型可以用哈希表表示的话,用unordered_set效率更高

发布了103 篇原创文章 · 获赞 9 · 访问量 4709

猜你喜欢

转载自blog.csdn.net/weixin_43590232/article/details/104360096