c++ list, vector,deque, map,set 区别与用法比较

1 篇文章 0 订阅
1 篇文章 0 订阅

c++ list, vector,deque, map,set 区别与用法比较

1  vector:[pos]侧重于随机访问速度
2  list
:  侧重于增加删除数据的速度,对数据中间的增删操作比较多,可排序

3  deque:[pos]分段连续内存,即需要前后增删数据的能力,又要良好的数据访问速度

4  set: 二叉树,自定义排序,find查找速度

5  map: [key]二叉树,自定义排序,find查找速度,键值对

List封装了链表, 链表形式实现, 不支持[]

插入删除就快的多了,不需要拷贝和移动数据,只需要改变指针的指向就可以了。

Vector封装了数组, 连续内存存储的,支持[]

随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。

Deque融合了list和vector的优点:随机访问与头尾删除插入效率都很高,但是在中间操作的效率很低.

Queue 是受限制的deque,内部容器一般使用list较简单。先进先出,不允许遍历

Map,Set属于标准关联容器,使用了非常高效的平衡检索二叉树:红黑树,他的插入删除效率比其他序列容器高是因为不需要做内存拷贝和内存移动,而直接替换指向节点的指针即可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值