2.2.关于STL时间复杂度的一些总结
map, set, multimap, and multiset
map、set、multimap和multiset四种容器都是用红黑树实现的,红黑树本质上是平衡二叉树的一种,所以操作的时间复杂度近似为:
插入:
O
(
l
o
g
N
)
O(logN)
O(logN)
查看:
O
(
l
o
g
N
)
O(logN)
O(logN)
删除:
O
(
l
o
g
N
)
O(logN)
O(logN)
hash_map,hash_set,hash_multimap,and hash_multiset
上述四种容器由哈希表实现,不同操作的时间复杂度为:
插入:
O
(
1
)
O(1)
O(1),最坏
O
(
N
)
O(N)
O(N)
查看:
O
(
1
)
O(1)
O(1),最坏
O
(
N
)
O(N)
O(N)
删除:
O
(
1
)
O(1)
O(1),最坏
O
(
N
)
O(N)
O(N)
特别注意:如果采用合适的哈希函数,永远不可能看到最坏的情况,明确这一点很重要。