将unorder_set更喜欢向量的原因

时间:2015-07-30 14:36:56

标签: c++ vector unordered-set

例如,将unordered_set更喜欢向量的原因是什么? 我试图想出一些想法,但我简直无法想象为什么我会赢得它。对于界面?还有什么?

2 个答案:

答案 0 :(得分:2)

unordered_set可让您检查元素是否属于O(1)平均时间内的那个元素。其他标准集操作(插入,删除)也是O(1)。因此,当您需要的是数学set时,主要使用集合(或unordered_set):它是专门为支持标准集合操作而开发的容器(数据结构)。

假设您有一些单词词典,并且您希望能够快速检查给定单词是否属于此词典。与在unordered_set中存储单词相比,在vector中存储字典单词将为您提供更快的解决方案。

答案 1 :(得分:2)

  • 您可以在unordered_set中存储不可复制的不可移动对象。

  • 如果保持向量排序(在插入时本身为O(n)),查找给定元素是否在集合中是O(1)而不是O(n),或O(log n)

  • unordered_set不允许重复。

  • 删除给定元素是O(1)。在有序矢量的情况下,它是O(n)。