2019年2月11日训练日记

今天上午看了一下一些关于stl的博客,STL容器主要分为
顺序容器 vector(向量容器)
deque(双端队列容器)
list(双向链表)
关联容器 set(单重集合)
multiset(双重集合)
map(单重映射表)
multimap(多重映射表)
容器适配器 stack(栈) queue(队列) prority_queue(优先级队列);

(一)vector向量容器
1.包含在头文件#include
2.功能 模拟了一个动态数组
3.底层实现
首先开辟一定大小的数组 随着元素的增加,如果空间不够之后 自动采取扩容机制

二)deque双端队列
1.包含在头文件#include
2.底层实现
底层是一个二维数组 刚开始只开辟了两个格子的一维数组,每个一维数组里的指针指向一个二维数组的格子
每个指针指向的格子的大小由创建的双端队列所存放的数据类型有关
tempalate
QUEUE_SIZE = 4096/T

(三)list双向链表
底层是一个环状的循环链表 由于其链表节点具有pre和next域 所以list也支持push_back、push_front、pop_back、pop_front
根据链表的插入与删除 插入时需要配置一个节点空间 删除时需要删除对应元素的节点空间
它的扩容机制不受影响 每次插入节点 只需要先开辟节点空间 在放置元素
它的底层不是连续的 所以不能通过[]随机访问元素 但是可以双向遍历
增加元素都不会使迭代器失效
删除元素时 只是指向当前被删元素的迭代器失效 不影响其他迭代器
目前只看懂这些,加油!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值