文章目录
map
map是基于红黑树实现的有序关联容器。红黑树作为一种自平衡二叉树,保障了良好的最坏情况运行时间,即它可以做到在O(log n)时间内完成查找,插入和删除,
红黑树意味着对于键值它是有序存储,当你需要查找某一范围的键值时,std::map提供了lower_bound和upper_bound,都是(logN),两者联合使用是可以在(logN)内确定键值key的范围的。
操作 | 平均复杂度 | 最坏复杂度 |
---|---|---|
空间 | O(n) | O(n) |
查找 | O(log n) | O(log n) |
插入 | O(log n) | O(log n) |
删除 | O(log n) | O(log n) |
unordered_map
unordered_map是基于散列表hash_table实现的无序关联容器,一般是由一个大vector,vector元素节点可挂接链表来解决冲突来实现。hash