stack容器

1.stack 基本概念

概念:

stack是一种先进后出的数据结构,它只有一个出口

  • 栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为,不提供走访功能,也不提供配接器
  • 缺省情况下STL用deque封闭其头端形成stack
  • 由于它以底部容器完成所有工作,具有“修改某物接口,形成另一种的风貌”,称为配接器

操作:

  • 栈中进入数据称为 — 入栈 push
  • 栈中弹出数据称为 — 出栈 pop
    示意图

2.stack 底层

  • SGI STL便以deque为缺省情况下的stack底层结构
  • stack往往被归类为容器配接器
  • 没有迭代器,因为它只访问顶端元素

3.stack 常用接口

功能描述:栈容器常用的对外接口

构造函数:

  • stack<T> stk; //stack采用模板类实现, stack对象的默认构造形式
  • stack(const stack &stk); //拷贝构造函数

赋值操作:

  • stack& operator=(const stack &stk); //重载等号操作符

数据存取:

  • push(elem); //向栈顶添加元素
  • pop(); //从栈顶移除第一个元素
  • top(); //返回栈顶元素

大小操作:

  • empty(); //判断堆栈是否为空
  • size(); //返回栈的大小

示例:

#include <stack>

//栈容器常用接口
//创建栈容器 栈容器必须符合先进后出
stack<int> s;
//向栈中添加元素,叫做 压栈 入栈
s.push(10);
while (!s.empty()) {
	//输出栈顶元素
	cout << "栈顶元素为: " << s.top() << endl;
	//弹出栈顶元素
	s.pop();
}
cout << "栈的大小为:" << s.size() << endl;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值