随着C++0x标准的确立,C++的标准库中也终于有了hash table这个东西。很久以来,STL中都只提供作为存放对应关系的容器,内部通常用红黑树实现,据说原因是二叉平衡树的各种操作,插入、删除、查找等,都是稳定的时间复杂度,即O;但是对于hash表来说,由于无法避免re-hash所带来的性能问题,即使大多数情况下hash表的性能非常好,但是re-hash所带来的不稳定性在当时是不能容忍的。不过由于hash表的性能优势,它的使用面还是很广的,于是第三方的类库基本都提供了支持,比如MSVC中的和Boost中的。后来Boost的unordered_map被吸纳进了TR1 ,然后在C++0x中被最终定了标准。于是我们现在就可以开心得写以下的代码了:

C++中的哈希容器unordered_map使用示例