C++中stack的用法(超详细,入门必看)

慈云数据 2024-03-13 技术支持 57 0

博主简介:Hello大家好呀,我是陈童学,一个与你一样正在慢慢前行的人。

博主主页:@陈童学哦

所属专栏:C++STL

在这里插入图片描述

前言:Hello各位小伙伴们好!欢迎来到本专栏C++STL的学习,本专栏旨在帮助大家了解并熟悉使用C++中的STL,C++中的STL(标准模板库)是相当好用的,🍉🍉🍉所以大家赶紧订阅一起学起来叭!那么话不多说接下来就进入本文C++中stack的学习。

📢📢📢站点

  • ⭐一、stack的简介
  • ⭐二、stack的定义及初始化
  • ⭐三、stack中常用的成员函数
  • ⭐四、stack的遍历方法
  • ⭐五、stack的真题巩固
  • ⭐六、写在最后

    ⭐一、stack的简介

    stack的中文译为堆栈,堆栈一种数据结构。C语言中堆栈的定义及初始化以及一些相关操作实现起来较为繁琐,而C++的stack让这些都变得简便易实现。因为C++中有许多关于stack的方法函数。

    堆栈(stack)最大的特点就是先进后出(后进先出)。就是说先放入stack容器的元素一定要先等比它后进入的元素出去后它才能出去。呃这样说可能有点绕哈哈,举个生活中的例子吧。

    某一天,天气炎热,你买了一个冰淇淋甜筒,而这个冰淇淋甜筒在制作过程时冰淇淋是不是先进入到甜筒的底部然后到最上面呢,但是你在吃的过程中要从最上面吃起到最后才能吃到甜筒底部的冰淇淋,但底部的冰淇淋是先进入甜筒的对吧。这就是所谓的先进后出啦!

    使用stack时需要包含头文件:

    #include
    

    ⭐二、stack的定义及初始化

    • 定义

      stack 容器名

      例:

      //stack的定义 
      stacks1; //定义一个储存数据类型为int的stack容器s1 
      stacks2; //定义一个储存数据类型为double的stack容器s2
      stacks3; //定义一个储存数据类型为string的stack容器s3
      stacks4; //定义一个储存数据类型为结构体类型的stack容器s4
      stack s5[N]; //定义一个储存数据类型为int的stack容器数组,N为大小 
      stack s6[N]; //定义一个储存数据类型为int的stack容器数组,N为大小 
      

      ⭐三、stack中常用的成员函数

      关于stack的常用函数:

      empty() //判断堆栈是否为空
      pop() //弹出堆栈顶部的元素
      push() //向堆栈顶部添加元素
      size() //返回堆栈中元素的个数
      top() //返回堆栈顶部的元素 
      

      示例代码:

      #include
      #include
      using namespace std;
      int main()
      {
      	stack s; //定义一个数据类型为int的stack 
      	s.push(1); //向堆栈中压入元素1 
      	s.push(2); //向堆栈中压入元素2
      	s.push(3); //向堆栈中压入元素3
      	s.push(4); //向堆栈中压入元素4
      	cout
      		cout
      		cout
      	stack
      		cout
      	return ab?a:b;
      }
      int main()
      {
      	int n;
      	cinn;
      	stack
      		int C;
      		cinC;
      		if(A.empty()||C
      			if(B.empty()||CB.top())
      				B.push(C);
      			else
      			{
      				max1=max(max1,A.size());
      				while(A.size())
      					A.pop();
      				count++;
      				while(!B.empty()&&B.top()C)
      				{
      					A.push(B.top());
      					B.pop();
      				}
      				A.push(C);
      			}
      		}
      	}
      	if(!A.empty())
      	{
      		max1=max(max1,A.size());
      		count++;
      		while(!A.empty())
      		{
      			A.pop();
      		}
      	}
      	if(!B.empty())
      	{
      		max1=max(max1,B.size());
      		count++;
      		while(!B.empty())
      		{
      			B.pop();
      		}
      	}
      	cout
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon