STL中的关联式容器
STL中的关联容器分为set和map两大类,以及他们的衍生体multiset和multimap,这些容器均由红黑树(RB-tree)实现。另外,STL还提供了不在标准之外的关联式容器:hashtable以及以此为底层机制的hash_set,hash_map和他两的multi衍生体。 以红黑树和哈希表为底层结构构造的容器最大的不同是前者为直接排序而后者不是。 1.红黑树 我的这篇博客介绍了红黑树和AVL树的大概轮廓,具体插座和查找细节可以参考《算法导论》,此处不介绍这些细节了。红黑树是一种接近平衡的平衡二叉搜索树,拥有良好的查找、插入复杂度。 STL中的RB-tree提供了两种插入操作:insert_unique()和insert_equal(),前者表示被插入节点的key值独一无二,后者表示ke…