我有一个空的整数堆栈,和以下格式的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;
}
}
我看不出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;
}
}
此外,我还移动了s
和a
的声明,使其尽可能接近使用点。
我的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等分配内存函数分配得到的就是在堆上。 存放在栈中时要管存储顺序,保持着先进后出的原则,他是一片连续的内存域,有系统自动分配和维护; 堆是无序的,他是一片不连续