【STL】容器适配器 queue和stack

queue源码实现

在这里插入图片描述

stack源码实现

在这里插入图片描述

stack和queue

在这里插入图片描述

  • queue和stack里面都内含一个sequence(底层容器),queue和stack都是通过调用sequence中的一部分功能来实现的
  • queue和stack的默认sequence都是deque,list也可以满足queue和stack所有成员函数的要求,但stack可以选择vector作为底层结构,queue不可以选择vector作为底层结构,因为vector没有pop_front(),另外stack和queue都不可以选择set或map作为底层结构,因为其没有push_back(),back(),pop_back()
  • stack或queue不允许遍历,也不提供iterator

stack调用

top():返回 stack 中第一个元素的引用。如果 stack 是常量,就返回一个常引用;如果 stack 为空,返回值是未定义的。
push(const T& obj):在 stack 的尾部添加一个元素的副本。这是通过调用底层容器的成员函数 push_back() 来完成的。
push(T&& obj):以移动的方式在 stack 的尾部添加元素。这是通过调用底层容器的具有右值引用参数的成员函数 push_back() 来完成的。
emplace():用传给 emplace() 的参数调用 T 的构造函数,在 stack 的尾部生成对象。
pop():删除 stack 中的第一个元素。

queue调用

front():返回 queue 中第一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。
back():返回 queue 中最后一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。
push(const T& obj):在 queue 的尾部添加一个元素的副本。这是通过调用底层容器的成员函数 push_back() 来完成的。
push(T&& obj):以移动的方式在 queue 的尾部添加元素。这是通过调用底层容器的具有右值引用参数的成员函数 push_back() 来完成的。
emplace():用传给 emplace() 的参数调用 T 的构造函数,在 queue 的尾部生成对象。
pop():删除 queue 中的第一个元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值