C++ STL 容器

本系列博客计划每天抽时间对C++ 标准库STL中的容器进行总结归纳。

容器分为:序列式容器关联式容器。 

容器

底层数据结构

时间复杂度

有无序

可不可重复

其他

array

数组

随机读改 O(1)

无序

可重复

支持快速随机访问

vector

数组

随机读改、尾部插入、尾部删除 O(1)
头部插入、头部删除 O(n)

无序

可重复

支持快速随机访问

list

双向链表

插入、删除 O(1)
随机读改 O(n)

无序

可重复

支持快速增删

deque

双端队列

头尾插入、头尾删除 O(1)

无序

可重复

一个中央控制器 + 多个缓冲区,支持首尾快速增删,支持随机访问

stack

deque / list

顶部插入、顶部删除 O(1)

无序

可重复

deque 或 list 封闭头端开口,不用 vector 的原因应该是容量大小有限制,扩容耗时

queue

deque / list

尾部插入、头部删除 O(1)

无序

可重复

deque 或 list 封闭头端开口,不用 vector 的原因应该是容量大小有限制,扩容耗时

priority_queue

vector + max-heap

插入、删除 O(log2n)

有序

可重复

vector容器+heap处理规则

set

红黑树

插入、删除、查找 O(log2n)

有序

不可重复

 

multiset

红黑树

插入、删除、查找 O(log2n)

有序

可重复

 

map

红黑树

插入、删除、查找 O(log2n)

有序

不可重复

 

multimap

红黑树

插入、删除、查找 O(log2n)

有序

可重复

 

hash_set

哈希表

插入、删除、查找 O(1) 最差 O(n)

无序

不可重复

 

hash_multiset

哈希表

插入、删除、查找 O(1) 最差 O(n)

无序

可重复

 

hash_map

哈希表

插入、删除、查找 O(1) 最差 O(n)

无序

不可重复

 

hash_multimap

哈希表

插入、删除、查找 O(1) 最差 O(n)

无序

可重复

 

 

基本上标准库容器都有迭代器iterator,来遍历操作容器中的元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值