gpt4 book ai didi

c++ - 程序运行到一半就停止了?

转载 作者:行者123 更新时间:2023-11-28 01:34:07 26 4
gpt4 key购买 nike

我已经编写了这个程序,但我似乎无法弄清楚为什么它会编译,但是当它运行时它会在中途停止?我已经删除了 reverse_stack 并尝试没有它。仍然有同样的问题?有谁知道为什么会这样?

示例代码:

#include <iostream>
#include <stack>

using namespace std;

void reverse_stack(stack<int>&S, stack<int>& S1, stack<int>& S2){

while(!S.empty()){
S1.push(S.top());
S.pop();
}

while(!S1.empty()){
S2.push(S1.top());
S1.pop();
}

while(!S2.empty()){
S.push(S2.top());
S.pop();
}
}

int main()
{
stack<int> S, S1, S2;
S.push(1), S.push(2), S.push(3);

cout<< "The top element of S is: " <<S.top() << endl;
reverse_stack(S,S1,S2);

cout<< "The top element of S is now: " << S.top() << endl;
return 0;

}

输出::

The Top element of S is: 3

这里没有超过这一点。

预期输出::

The Top element of S is: 3
The Top element of S is: 1

最佳答案

你的最后一个 while 循环

while(!S2.empty()){
S.push(S2.top());
S.pop();
}

当它应该从 S2 弹出时从 S 弹出。

关于c++ - 程序运行到一半就停止了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50112572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com