C++ STL设置实现

Cri*_*ter 4 c++ algorithm stl data-structures

为什么C++集实现为二叉树而不是哈希集,与二叉树提供的O(log n)相比,它可以提供O(1)的平均大小写复杂度?

Mat*_*ips 16

因为C++集是由T比较运算符排序的,这使得以可预测的方式迭代成员成为可能.如果您知道您将对该集合执行的操作是插入,测试成员资格和/或删除元素,那么std::unordered_set实现哈希集的原因就是C++ 11.

  • @ user2380088,因为虽然散列集具有非常好的查找​​复杂性,但它不一定适合于有序处理,因为散列的顺序可能与键的顺序关系不大. (3认同)
  • 与我所拥有的几乎一字不差:p (2认同)

ric*_*ici 9

据John Nagle所说,从2006年发布到comp.lang.c ++.主持:

实际的原因是编写规范的哈希表部分的人没有及时完成它.就这样.

标准化过程就是这样.