【C++】自主实现stack/queue

大家好,我是苏貝,本篇博客带大家了解C++的自主实现stack/queue,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️
在这里插入图片描述



栈:后进先出
队列:先进先出

栈和队列都不支持迭代器,因为一旦支持了迭代器,那就不能保证后进先出/先进先出

栈:一般是边取边出
在这里插入图片描述

1. stack

在这里插入图片描述

我们不会像上面这样写,这已经在实现string的时候讲过了,因此我们换一个方法:使用vector/list

Stack实现需要尾插,尾删,所以既可以用vector,也可以用list。
在这里插入图片描述

因此我们不要写死了用vector还是list,我们可以再加一个模板参数,自己确定想要用vector还是list

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

可是我们在使用库里的stack时,只传一个模板参数也可以啊,这是为什么?因为模板参数和函数参数类似,也可以有缺省值

在这里插入图片描述

2. queue

queue实现需要尾插,头删,所以不用vector,因为vector没有提供pop_front函数,可以用erase,但效率较低。可以用list

在这里插入图片描述

在这里插入图片描述

但是我们查看库里的stack和queue,它们的缺省值不是vector/list,而是deque,deque是什么?下一篇来介绍deque

在这里插入图片描述

在这里插入图片描述


好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值