码迷,mamicode.com
首页 > 其他好文 > 详细

STL中set底层实现方式? 为什么不用hash?

时间:2015-05-26 21:13:00      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

红黑树与hash table最大的不同是,红黑树是有序结构,而hash table不是。但不是说set就不能用hash,如果只是判断set中的元素是否存在,那

么hash显然更合适,因为set 的访问操作时间复杂度是log(N)的,而使用hash底层实现的hash_set是近似O(1)的。然而,set应该更加被强调理解

为“集合”,而集合所涉及的操作并、交、差等,即STL提供的如交集set_intersection()、并集set_union()、差集set_difference()和对称差集

set_symmetric_difference(),都需要进行大量的比较工作,那么使用底层是有序结构的红黑树就十分恰当了,这也是其相对hash结构的优势所

在。 

 





STL中set底层实现方式? 为什么不用hash?

标签:

原文地址:http://www.cnblogs.com/ZhangJinkun/p/4531434.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!