C++ STL---stack与queue、priority_queue

stack与queue、priority_queue

stack与queue、priority_queue是容器适配器,容器适配器的意思就是,以正常的容器作为底层的实现,然后加上以下限制之后就构成了容器适配器的底层实现

1.stack:
stack的底层默认的容器是deque,只使用了deque的push_back与pop_back两种插入与跳出,当然还有back(),其实底层的容器并不固定,就像vector,list都可以作为stack的底层,但是默认是deque

2.queue
queue的底层默认容器任然是deque,只使用了deque的push_back与pop_front,与stack不同的是,queue的底层不能使用vector,可以使用list,因为在vector中不存在pop_front,对于所有的适配器而言,不仅可以底层使用这些已经存在的容器,也可以使用自己实现的容器,只要自己的容器包含对应适配器所需要的函数就行

3.priority_queue
priority_queue:优先队列,实现与堆非常像,默认的容器是vector,在priority_queue定义对象的过程中,<>中的元素不仅有有类型名,还包括了底层的容器,stack与queue就是这样,priority_queue比他们多的部分就是第三个参数,第三个参数代表的是优先队列是大根堆还是小根堆,less是大根堆,greater是小根堆,这些被称作仿函数

仿函数:可以当成函数使用的类,方法是重载函数调用运算符("()"),这个自己也可以实现

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值