STL :双端队列容器 Deque

Deque

  • #include<deque>    using namesace std;

  • 双端队列容器 :双向开口连续线性空间;

  • 擅长尾部和头部添加或删除元素:常数阶;

  • 存储元素并不能保证所有元素都存储到连续的内存空间中;

  • deque 是动态的以分段连续空间组合而成(没有提供所谓空间保留 server 功能);

  • 是分段连续内存空间,有中央控制,维持整体连续的假象

  • deque 最大的工作就是维护分段连续的内存空间的整体性的假象,并提供随机存取的接口,避开了重新配置空间、复制、释放的轮回,代价就是复杂的迭代器架构

  • [deque 接口函数介绍](C++ deque get_allocator用法及代码示例 - 纯净天空)。

Capacity

NameRoleNotice
size返回矢量实际存储元素数目(实际数据量)
max_size返回矢量所能存储的最大的元素数目
resize更改矢量实际存储,指定长度若变长则默认填充新位置,变短则删除超出长度的元素
empty判断矢量存储是否为空
shrink_to_fit请求降低存储使得 capacity 和 size 匹配

Element access

NameRoleNotice
operator[ ]下标访问元素越界不抛出异常,直接报错
at返回索引所指的元素如果越界则抛出 out_of_range
front返回第一个元素
back返回最后一个元素

Modifiers

NameRoleNotice
assign将数据赋值给本身拷贝 n 个 elem :assign(n, elem)
拷贝区间数据:assign(beg, end)
push_back在容器尾部添加一个元素
push_front在容器头部添加一个元素
pop_back删除容器最后一个元素
pop_front删除容器第一个元素
insert指定位置插入元素的拷贝插入一个并返回位置:insert(pos, elem)
插入 n 个:insert(pos, n, elem)
插入区间 [ ) :insert(pos, beg, end)
erase删除指定数据,返回下一个数据的位置删除区间 [ ) :erase(beg, end)
删除指定位置:erase(pos)
swap交换另一相同类型的双端队列的内容
clear移除容器所有数据
emplacec11指定位置直接构造生成一个元素
emplace_frontc11容器头部生成一个元素,直接构造,减少复制移动
emplace_backc11容器尾部生成一个元素,直接构造,减少复制移动

Allocator

NameRoleNotice
get_allocator获取容器双端队列的分配器

Notice

  • 相比 vector ,增加了头部添加和删除的成员函数,同时删除了 capacity( )、reverse( )、data( ) 成员函数;

  • swap(deque1, deque2) :交换存储相同类型的元素,功能相同,语法不同;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值