我什么时候应该选择一个而不是另一个? 对于使用正确的 STL 容器,您有什么建议可以推荐吗?
最佳答案
hash_set
是不属于 C++ 标准的扩展。 set
的查找应该是 O(1) 而不是 O(log n),因此在大多数情况下会更快。
当您遍历容器时会看到另一个区别。 set
将按排序顺序传递内容,而 hash_set
基本上是随机的(感谢 Lou Franco)。
编辑:对 C++ 标准的 C++11 更新引入了 unordered_set
这应该是首选而不是 hash_set
。性能将相似,并由标准保证。名称中的“无序”强调迭代它会产生没有特定顺序的结果。
关于c++ - C++ STL中的set和hashset有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2518305/