我什么时候应该选择一个?
您是否建议使用正确的STL容器的任何指针?
最佳答案
hash_set
是扩展,不属于C++标准。查找应该是O(1)而不是O(log n)的set
,因此在大多数情况下它将更快。
当您遍历容器时,将看到另一个差异。 set
将按排序顺序传递内容,而hash_set
本质上将是随机的(感谢Lou Franco)。
编辑:对C++标准的C++ 11更新引入了 unordered_set
,而不是hash_set
应该是首选。性能将是相似的,并且由标准保证。名称中的“无序”强调迭代不会产生特定顺序的结果。