当前位置: 首页 > news >正文

stack栈的基本使用-c++

栈的特点:

①先进入栈的元素会放在栈的底部(先进后出
②取出元素的时候,先取出顶部元素(后进先出
③栈大小是有限的
    a.如果栈满了,不能放进元素
    b.如果栈空,不能取出元素

导入c++库stack以使用栈

#include<stack>

定义一个int类型的栈

stack <int> s;


stack的基本操作有:

1.入栈:如s.push(x);
2.出栈:如 s.pop().

注意:出栈操作只是删除栈顶的元素,并不返回该元素。
3.访问栈顶:如s.top();
4.判断栈空:如s.empty().当栈空时返回true。
5.访问栈中的元素个数,如s.size();
6.top() 返回栈顶元素,并不会移除这个元素(注意,返回的是栈顶元素的引用)

清空栈的操作:

stack<int> stk
1.循环调用pop()函数,逐个移除栈中元素,直到栈为空
2.stk = {};

#include<iostream>
#include<stack> //导入以使用栈
using namespace std;

stack <int> s; //定义了一个int类型的栈

int main()
{
	int x;
	for (int i = 1; i <= 4; i++)
	{
		cin >> x;
		s.push(x); //元素入栈
	}
	int n = s.size();
	cout << "栈内的元素个数为" << n << endl;
	
	s.top() = 2;//直接修改栈顶元素
	
	while (!s.empty()) //当栈不为空时
	{
		cout << s.top()<<" "; //返回栈顶元素
		s.pop();//栈顶元素出栈(删除)
	}
	
	if(s.empty()) cout<< endl <<"栈为空" << endl;
	
	//当栈为空时,不能用top()函数访问栈顶元素或进行修改
	s.push(999);
	cout << s.top() << endl;

	cout << "----------------------------------------------------" << endl;
	
	//清空栈的操作:
	stack<int> stk;
	stk.push(1);
	stk.push(2);
	stk.push(3);
	stk = {};
	if (stk.empty()) cout << "栈为空" << endl;
	else cout << "栈中还有元素" << endl;
	return 0;
}

http://www.dtcms.com/a/108223.html

相关文章:

  • 23种设计模式-结构型模式-享元
  • 在未归一化的线性回归模型中,特征的尺度差异可能导致模型对特征重要性的误判
  • 墨笔 在线Markdown 编辑器
  • VAE讲解
  • PyTorch中卷积层torch.nn.Conv2d
  • Android 切换prefer APN后建立PDN的日志分析
  • ubuntu改用户权限
  • AI调研 | Omnisql模型家族调研与实测
  • ‌Windows 与 Linux网络命令速查表,含常用场景及参数说明
  • 使用高德api实现天气查询
  • 多电机显示并排序
  • WHAT - 如何理解中间件
  • WPF学习路线
  • 关于Gstreamer+MPP硬件加速推流问题:视频输入video0被占用
  • MYSQL实现获取某个经纬度区域内的数据
  • Cesium系列:从入门到实践,打造属于你的3D地球应用
  • 为 Jenkins Agent 添加污点(Taint)容忍度(Toleration)
  • Dubbo分布式框架学习(1)
  • vue省市区懒加载,用el-cascader 新增和回显
  • 多模态大模型笔记
  • Compressed串行端口终端应用程序(MAC 、WIN、LINUX)打包下载
  • 高级java每日一道面试题-2025年3月19日-Web篇-防止表单重复提交的方法有哪些?
  • MySQL联合查询
  • vector的学习使用(1)
  • Cjson的创建和解析
  • 【Python】KNN:K-NearestNeighbor 学习指南
  • Vue3+Cesium+vite 入门- 项目搭建
  • HAL库 通过USB Boot进行APP程序升级
  • window11 通过cmd命令行安装 oh my zsh 的教程
  • VMware上的windows虚拟机安装使用Docker方法