C++ SLT总结1

STL简介

顺序性容器 vector(从后面快速插入与删除,直接访问任何元素) deque(从前面或后面快速插入与删除) list(双链表,从任何地方插入与删除)
关联容器 set(快速查找,不允许重复值) multiset(快速查找,允许重复值) map(一对多映射,基于关键字查找,允许重复值) multimap(一对多映射,基于关键字,允许重复。)
容器适配器 stack(后进先出) queue(先进先出) priority_queue(最高优先级元素总是先出)

C++ Vector(向量容器)
    线性顺序结构,相当于数组,可以像数组一样索引。大小可以不完全预先指定,原因:vector相当于动态数组,当初始分配的空间不够会重新分配空间,再将数据复制到新空间再销毁以前的对象回收空间,会降低效率。所以尽量指定vector大小,可以发挥vector的性能。
    vector的特点:
    1.存储空间连续,空间可以动态扩展。
    2.随机访问方便,可以像数组那样访问元素。
    3.节省空间。
    4.在内部进行插入删除效率低,因为它是连续存储的,在中间插入删除会破坏这种关系。
    5.只能在尾部进行插入删除。


    构造:vector<int> v1;//int可以改为任何类型
    函数网上查。
C++ List(双向链表)
    线性链表结构,节点与节点之间的联系靠指针,内存大小可以任意伸缩,list随机检索性能不好,检索时间与目标元素位置成正比,可以迅速在任何节点插入和删除。
    List特点:
    1.不使用连续空间,可以任意插入、删除。
    2.不支持[],查找元素时间较长。

    函数网上查。
C++ Deque(双向队列)
    允许快速随机访问,不像vector把所有对象保存到连续空间,采用多个连续块,用一个映射结构存储这些块和顺序,它是vector和list的结合。
    Deque特点:
    1.随机访问方便,支持[]访问,性能不如vector。
    2.可以在内部插入和删除,性能不如list。
    3.可以在两端push和pop。
    4.相对于vector占用更多内存。

    创建双向队列:
    deque();//空双向队列
    deque(size_type num,const TYPE &val);//放置num个val拷贝到队列中
    deque(size_type size);//创建大小为size的双向队列
    deque(const deque &from); //从from创建一个内容一样的双向队列
    deque(intpu_iterator start,input_iterator end);//start 和end创建一个队列,保存从start到end的元素。
Vector、List、Deque比较

vector是连续的内存块,list是离散的内存块,deque是多个连续的内存块。vector查询性能最好,list插入和删除性能最好,查询性能非常差。deque兼顾了前面两者的特点,如果有插入删除、又关心随机存取,deque是最佳选择。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值