为什么有人会使用 set 而不是 unordered_set?

19 浏览
0 Comments

为什么有人会使用 set 而不是 unordered_set?

C++0x正在引入unordered_set,在boost和许多其他地方可用。我理解的是,unordered_set是具有O(1)查找复杂性的哈希表。另一方面,set仅是具有log(n)查找复杂性的树。 为什么有人会使用set而不是unordered_set?即是否还需要set

admin 更改状态以发布 2023年5月20日
0
0 Comments

当对一个集合中的项目进行迭代时,如果顺序很重要,那么这句话就适用。

0
0 Comments

无序集合需要通过以下方式来支付它们的平均访问时间为O(1):

  • set用于存储相同数量的元素时,需要的内存更少unordered_set
  • 对于元素较少的情况,set中的查找可能比unordered_set中的查找更快
  • 尽管对于unordered_set,许多操作在平均情况下更快,但是在set中,它们通常保证具有更好的最坏复杂度(例如insert)。
  • set 对元素进行排序,如果要按顺序访问它们,将非常有用。
  • 您可以使用<<=>>=对不同的set进行字典序比较unordered_set不需要支持这些操作。
0