纯粹抽象地考虑这样一个事实,即元素的排序是一个额外的"特征",你必须付出代价,所以如果你不需要它(比如在查找字典中),那么你不应该付钱为了它.
从技术上讲,这意味着可以通过使用哈希表来实现无序容器,其具有预期的查找和插入复杂度O(1),而不是有序容器的O(log n).
但是,在切线相关的注释中,当使用字符串作为键时,有一个巨大的实际优势:有序容器必须在树行走的每个地方执行完整的字符串比较,而散列容器只执行单个散列操作(甚至可以"优化"仅从非常长的字符串中采样固定数量的字符),并且在实践中经常变得更快.
如果排序是不是必需的,然后做的最好的办法是尝试了两种容器类型(其接口几乎是相同的),并比较在性能上的用户配置文件.