当前位置: 首页 > 知识库问答 >
问题:

在堆栈c++中推pop top

吕皓
2023-03-14

我有一个空的整数堆栈,和以下格式的q查询:Push x:在堆栈顶部添加x Pop:移除堆栈顶部top:打印堆栈顶部示例输入:10 Push 5 top Push 6 top Push 3 top Pop top Pop top输出:5 6 3 6 5我将把我的代码放在注释中,因为我不知道怎么放在这里..我知道这是极其错误的但请我需要帮助来改进它

#include <iostream>
#include <stack>

using namespace std;

int main()
{
    stack<int>st;
    int n,a;
    cin>>n;
    string s;
    cin>>s;

    for(int i=0;i<n;i++)
    {
        if(s=="push")
        {
            cin>>a;
            st.push(a);
        }

        if(s=="pop")
            st.pop() ;

        if(s=="top")
            cout<<st.top()<<endl;
    }
}

共有1个答案

艾敏学
2023-03-14

我看不出for循环作为编码的用途。相反,(把Ajourney的答案放在船上),我会这样做:

int main()
{
    stack<int>st;

    for ( ; ; )
    {
        string s;
        cin >> s;

        if(s=="push")
        {
            int a;
            cin>>a;
            st.push(a);
        }

        if(s=="pop")
        {
            if (!st.empty ())
                st.pop() ;
            else
                cout << "Stack is empty\n";
        }

        if(s=="top")
        {
            if (!st.empty ())
                cout<<st.top()<<endl;
            else
                cout << "Stack is empty\n";
        }

        if(s=="quit")
            break;
    }
}

此外,我还移动了sa的声明,使其尽可能接近使用点。

 类似资料:
  • 我的C++代码,推入一个字符串到我的堆栈 当我和Java一起运行时,我收到了一份坠毁报告,有没有办法修复它? Java运行时环境检测到一个致命错误: SIGSEGV(0xB)(PC=0x00007F29421A0207,PID=18007,TID=0x00007F2942D3E700) JRE版本:Java(TM)SE运行时环境(8.0_144-B01)(build 1.8.0_144-B01)J

  • 主要内容:Stack 类中的属性,Stack 类中的方法在 C# 中,堆栈(Stack)类表示一个后进先出的对象集合,当您需要对项目进行后进先出的访问时,则可以使用堆栈。向堆栈中添加元素称为推入元素,从堆栈中移除元素称为弹出元素。 Stack 类中的属性 下表列出了 Stack 类中一些常用的属性: 属性 描述 Count 获取堆栈中包含的元素个数 IsSynchronized 判断是否同步对堆栈的访问(线程安全) SyncRoot 获取可用于同步对堆

  • C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,——也就是说实现了一个先进后出(FILO)的数据结构。 操作 比较和分配堆栈 empty() 堆栈为空则返回真 pop() 移除栈顶元素 push() 在栈顶增加元素 size() 返回栈中元素数目 top() 返回栈顶元素

  • 本文向大家介绍在C ++中正确使用堆栈和堆?,包括了在C ++中正确使用堆栈和堆?的使用技巧和注意事项,需要的朋友参考一下 堆栈-函数内部声明的所有变量将占用堆栈中的内存。因此,函数内的任何局部变量都位于堆栈中。 堆-这是程序的未使用内存,可用于在程序运行时动态分配内存。因此,如果我们希望某些东西的寿命比声明它的函数的寿命更长,则必须在堆上分配它。 示例 堆内存中的主要问题是碎片,而堆栈中更容易出

  • 本文向大家介绍C ++程序在STL中实现堆栈,包括了C ++程序在STL中实现堆栈的使用技巧和注意事项,需要的朋友参考一下 堆栈是遵循特定操作顺序的线性数据结构。订单可以是FILO(先进先出)或LIFO(先进先出) 算法 范例程式码 输出结果

  • 本文向大家介绍C#中堆和栈的区别?相关面试题,主要包含被问及C#中堆和栈的区别?时的应答技巧和注意事项,需要的朋友参考一下 答 栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。 堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。   存放在栈中时要管存储顺序,保持着先进后出的原则,他是一片连续的内存域,有系统自动分配和维护; 堆是无序的,他是一片不连续