include <iostream>
#include <string.h>
using namespace std;
#include "Stack.h"
int main()
{
Stack<float>b;
Stack <float> a(b);
char num[100];
while (true)
{
cout << "Enter: " << endl;
cin >> num;
if(strcmp(num,"Q") == 0 ||strcmp(num,"q")==0)
break;
if(strcmp(num,"*")==0)
{
float num1 = b.pop();//Error: Cannot initialize a variable of type 'float' with an rvalue of type 'void'
float num2 = b.pop();// Error: Cannot initialize a variable of type 'float' with an rvalue of type 'void'
if(num1 && num2){
a.push(num1*num2);
}
这是我计划的一部分。问题是我需要存储我从列表中弹出的值,然后将它们相乘并存储起来。在这里,我试图将值存储在浮点数中,这样我就可以进行操作但是如上所述它给了我一个错误,任何帮助都将不胜感激。
答案 0 :(得分:0)
如果您的"Stack.h"
与<stack>
类似:
参考Stack.pop()
:
返回值
无
所以你应该使用Stack.top()
:
返回值
对堆栈中顶部元素的引用。
示例代码
float num = b.top(); // get top value of stack
b.pop(); // pop it, not used anymore
// do something with num here