例如,将unordered_set更喜欢向量的原因是什么? 我试图想出一些想法,但我简直无法想象为什么我会赢得它。对于界面?还有什么?
答案 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)。