C++ stack容器详解

stack容器的基本概念

stack是一种先进先出的数据结构,被称为栈,它只有一端可以出入。
栈中进入数据称为——入栈(push)
栈中弹出数据称为——出栈(pop)
在这里插入图片描述

注意:

  1. 栈可以判断是否为空,也可以返回栈中元素个数,但栈不允许有遍历行为
  2. 使用stack容器必须包含头文件#include<stack>

stack的常用接口

1.构造函数

stack<T> stk; //stack采用模板类实现,默认构造,T为数据类型,如int
stack(const stack &stk); //拷贝构造

2.赋值操作

stack& operator=(const stack& stk);//重载赋值运算符

3.数据存取

push(elem); //入栈,向栈顶添加元素
pop(); //出栈,删除栈顶元素
top(); //返回栈顶元素

4.大小操作

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

测试:

void text()
{
	stack<int> stk1;
	for (int i = 0; i < 5; ++i)
	{
		stk1.push(i+10);
	}
	stack<int> stk2(stk1);
	cout << "stk1的大小为:" << stk1.size() << endl;
	cout << "stk2的大小为:" << stk2.size() << endl;
	//打印栈顶元素并出栈
	while (!stk1.empty())//栈非空时
	{
		cout << "stk1栈顶元素为:" << stk1.top() << endl;
		stk1.pop();
	}
	cout << "stk1的大小为:" << stk1.size() << endl;
	stk2 = stk1;
	cout << "stk2的大小为:" << stk2.size() << endl;
}

测试结果:
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&不逝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值