cpp-stl-容器对比

STL

包含13个模板类
<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、  
<memory>、<numeric>、<queue>、<set>、<stack>和<utility>  
关联式容器:容器内的元素按照一定的规则放到适当的位置,插入元素时不能指定位置  
序列式容器:元素在容器中的位置与元素值无关,插入元素时可以指定在容器中插入的位置
容器适配器:不支持任意一种迭代器
set(集合)–关联式容器
由节点组成的红黑树(元素有序且唯一)  
集合:键是唯一的,值的类型必须与键相同
特点:查找的速度特别快(时间复杂度logN)
multiset(多重集合)–关联式容器
允许有重复的元素  
多重集合:可以有多个相同的键
特点:和set一样查找速度快(时间复杂度logN)
map(映射)–关联式容器
由键值对组成的集合(元素按照key哈希组成红黑树) 
映射:键不允许重复
特点:查找的时间复杂度(logN) 
multimap(多重映射)–关联式容器
和map一样,区别是可以有相同的键
list(列表)–序列式容器
双向链表(内存不连续)  
列表:可以在任意位置插入,删除
特点:时间复杂度为(n)
vector(向量)–序列式容器
可变大小数组(元素保存在一段连续的内存)  
向量:唯一可以和标准C兼容的STL容器
特点:可以随机访问,时间复杂度(n)
dqueue(双向队列)–序列式容器
内存连续,可以随机访问元素
双向队列:在序列头部插入,删除时间复杂度(n)
stack(栈)–容器适配器
stack:是用vector/deque/list对象创建了一个先进后出容器
queue(队列)–容器适配器
queue:是用deque或list对象创建了一个先进先出容器
动态的分段连续空间组合而成,可以方便的扩充大小
操作:仅允许队尾和队首的操作
priority_queue(优先队列)–容器适配器
priority_queue:是用vector/deque创建了一个排序队列,内部用二叉堆实现
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值