Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;使用两个附加堆栈反转堆栈_C++_Stack_Reverse - Fatal编程技术网

C++ C++;使用两个附加堆栈反转堆栈

C++ C++;使用两个附加堆栈反转堆栈,c++,stack,reverse,C++,Stack,Reverse,我正在尝试使用另外两个堆栈(S1和S2)反转堆栈。这是我正在尝试的代码: #include <iostream> #include <stack> using namespace std; int main() { stack<int> S, S1, S2; S.push(1), S.push(2), S.push(3); cout << "The top element of S is: " << S.t

我正在尝试使用另外两个堆栈(S1和S2)反转堆栈。这是我正在尝试的代码:

#include <iostream>
#include <stack>

using namespace std;

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;

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

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

    return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
堆栈S、S1、S2;
推(1)、推(2)、推(3);
cout
pop()

您需要使用
top()
读取堆栈顶部的值,然后调用
pop()
pop()
不会返回从堆栈中弹出的值。
pop()
返回一个
无效
pop()
从堆栈中删除该值,而不执行其他操作

您需要使用
top()
读取堆栈顶部的值,然后调用
pop()

,您应该编写

 S1.push(S.top());
 S.pop();
有一个
void
返回类型。

您应该写

 S1.push(S.top());
 S.pop();

有一个
void
返回类型。

在使用任何库函数之前,您可能需要阅读一些参考文档:returns
void
。另一件事是,您实际上不需要两个堆栈来反转堆栈。另外,一件可能会奇怪的事情是错误使用。请确保您已经准备好通过takin继续编码G C++从RTFM中刷新。不要猜测。在使用任何库函数之前,您可能需要阅读一些参考文档:返回<代码> Value<代码>。另外一件事是,您不需要两个堆栈来反转堆栈。还有一个可能会奇怪的东西是误用。确保您准备好继续进行编码。一个C++从RTFM中刷新。不要猜。谢谢!你知道为什么会产生分段错误吗?@布列塔尼地区,不,这是一个不同的问题,你需要问一个单独的问题。不要错过提供一个。谢谢!你知道为什么会造成一个分割错误吗?@布列塔尼地区,不,这是一个不同的问题,你需要T。o就这一点单独提问。请不要错过提供答案。