我什么时候应该选择一个?
您是否建议使用正确的STL容器的任何指针?

最佳答案

hash_set是扩展,不属于C++标准。查找应该是O(1)而不是O(log n)的set,因此在大多数情况下它将更快。

当您遍历容器时,将看到另一个差异。 set将按排序顺序传递内容,而hash_set本质上将是随机的(感谢Lou Franco)。

编辑:对C++标准的C++ 11更新引入了 unordered_set ,而不是hash_set应该是首选。性能将是相似的,并且由标准保证。名称中的“无序”强调迭代不会产生特定顺序的结果。

10-05 19:29