私は2つの他のスタック(S1とS2)を使ってスタック(S)を反転しようとしています。これは私が試しているコードです:C++ 2つの追加のスタックを使用してスタックを反転する
#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;
}
これは、私が内側のプッシュからポップを呼び出すたびに私が得ているエラー(x3)です。 'const value_type'(別名 'const int')の型が 'void'型の右辺値にバインドできませんでした。S1.push(S.pop());
ポップされた値を割り当てようとしましたが、その変数でpushを呼び出すこともできましたが、失敗しました。
助けていただけたら幸いです!
ライブラリ関数を使用する前に、いくつかのリファレンスドキュメントを読むことをお勧めします。['std :: stack :: pop()'](http://en.cppreference.com/w/cpp/container/stack/pop )は 'void'を返します。もう1つは、スタックを逆にするために実際に2つのスタックが必要ないということです。また、奇妙になるかもしれないことは、[コンマ演算子]の誤用です(http://stackoverflow.com/questions/54142/how-does-the-comma-operator-work)。 [検証されたソース]からC++リフレッシャーを取得してコーディングに進む準備が整っていることを確認してください(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) – Drop
RTFM 。推測しないでください。 –