栈:stack 的常见用法☆☆☆☆

本文详细介绍了C++ STL中的stack容器,包括其定义、元素访问、常用函数如push、top、pop等,并通过实例展示了如何使用stack。stack作为一种后进先出的数据结构,常用于模拟递归,避免因递归深度过大导致的程序崩溃问题。同时,文章还列举了stack的其他实用功能,如检测空栈和获取元素个数。
摘要由CSDN通过智能技术生成

  stack翻译为,是STL中实现的一个后进先出的容器。要使用 stack,应先添加头文件include,并在头文件下面加上“ using namespace std;"

1. stack的定义

其定义的写法和其他STL容器相同, typename可以任意基本数据类型或容器:

stack<typename> name;

2. stack容器内元素的访问

由于栈(stack)本身就是一种后进先出的数据结构,在STL的 stack中只能通过top()来访问栈顶元素。

程序代码:

#include<cstdio> 
#include<stack> 
using namespace std;
int main(){
	stack<int> st;
	for(int i=1;i<=5;i++){
		st.push(i);		//push(i)将i压入栈 
	}
	printf("%d\n",st.top()); 	//top()取栈顶元素 
	return 0;
}

运行结果为:5

3、stack中常用函数

①push()

入栈

②top()

获得栈顶元素

③pop()

弹出栈顶元素

运行代码:

#include<cstdio> 
#include<stack> 
using namespace std;
int main(){
	stack<int> st;
	for(int i=1;i<=5;i++){
		st.push(i);		//push(i)将i压入栈 ,1 2 3 4 5 依次入栈 
	}
	for(int i=1;i<=3;i++){
		st.pop();		//pop()将栈顶元素出栈,即将5 4 3 依次出栈 
	}
	printf("%d\n",st.top()); 	//top()取栈顶元素 
	return 0;
}

运行结果为:2

④empty()

可以检测stack内是否为空,返回true为空,返回false为非空

⑥size()

返回stack内元素的个数

4、stack的常见用途

stack常用来模拟一些递归,防止程序对栈内存的限制而导致程序出错

一般来说
程序的栈内存空间很小
对有些题目来说
如果用普通的函数来进行递归
一旦递归层数过深
则会导致程序运行崩溃
如果用栈来模拟递归算法的实现
可以避免这一方面的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值