C++ 查找时间复杂度为O(1)的STL容器

类型 举例 查找时间复杂度 插入时间复杂度 删除时间复杂度
序列容器 vector O(n) O(n) O(n)
序列容器 list O(n) O(1) O(1)
序列容器 deque 双端队列容器 随机访问的时间复杂度为 O(1) 在开头或末尾插入、删除元素的时间复杂度为 O(1) 在开头或末尾插入、删除元素的时间复杂度为 O(1)
排序容器 set 集合容器、multiset多重集合容器、map映射容器、 multimap 多重映射容器,底层是红黑树 O(logn) O(logn) O(logn)
哈希容器 unordered_set 哈希集合、unordered_multiset 哈希多重集合、unordered_map 哈希映射、 unordered_multimap 哈希多重映射。底层是哈希表 O(1) 最坏情况O(n),最坏情况是产生了hash冲突的时候,相同不同的key计算出来相同下标 O(1) 最坏情况O(n) O(1) 最坏情况O(n)

哈希容器:采用合适的哈希函数,可能永远不会看到最坏情况。但是记住这一点是有必要的。

https://blog.51cto.com/u_14637764/2514256
https://codeantenna.com/a/ia2IOE09by



猜你喜欢

转载自blog.csdn.net/qxqxqzzz/article/details/129622077