三 序列式容器(四)stack和queue( container adapters)

一 stack(使用时包含头文件<stack>,实际定义于<stl_stack.h>)

(1)stack以deque作为缺省的底部结构,也可以使用list。

缺省采用deque而不是vector的原因:deque移除元素时会释放内存,并且不必在重新分配时复制全部元素。


stack容器适配器的特点:

*stack不允许有遍历行为。stack只允许在最顶端删除、添加和获取最顶端元素的操作。

*只有最顶端的元素才有机会被外界取用,所以stack不提供走访功能,也不提供迭代器


(2)常用操作函数:

核心接口:

push():将一个元素置于stack内。

top():返回stack内的“下一个”元素。//如果stack内没有元素,则执行top()和pop()会导致未定义操作。

pop():从stack中移除元素。

size():返回元素个数。

empty():判断stack是否为空。

如图:


二 queue(使用时需包含头文件<queue>,实际定义于<stl_queue.h>中)

(1)queue以deque作为缺省的底部结构。

queue的特点:

*queue不提供遍历功能,也不提供迭代器。

*除了最底端可以加入,最顶端可以区除外,无任何其他存取方法。


(2)常用操作:

核心接口:

push():会将一个元素置入queue中。

pop():从queue中移除一个元素。

front():返回queue内的第一个被置入的元素。

back():返回queue中的最后被插入的元素。

size():返回元素个数。

empty():判断queue是否为空。

如图:





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值