运用栈stack类实现简单计算机,C++栈(stack)的模板类实现代码
时间: 2024-03-22 22:41:56 浏览: 134
C++栈(stack)的模板类实现代码
5星 · 资源好评率100%
下面是一个用 C++ 栈(stack)类实现简单计算机的示例代码:
```c++
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main() {
stack<int> s;
string input;
cout << "Enter a postfix expression: ";
getline(cin, input);
for (int i = 0; i < input.length(); i++) {
char c = input[i];
if (isdigit(c)) {
s.push(c - '0');
} else {
int op2 = s.top();
s.pop();
int op1 = s.top();
s.pop();
switch (c) {
case '+':
s.push(op1 + op2);
break;
case '-':
s.push(op1 - op2);
break;
case '*':
s.push(op1 * op2);
break;
case '/':
s.push(op1 / op2);
break;
default:
cout << "Invalid operator" << endl;
return 1;
}
}
}
if (s.size() == 1) {
cout << "Result: " << s.top() << endl;
} else {
cout << "Invalid expression" << endl;
}
return 0;
}
```
该程序使用一个 C++ `stack` 模板类来实现简单的后缀表达式计算器。用户输入一个后缀表达式,程序会将每个数字压入栈中,然后根据遇到的运算符弹出栈顶的两个数字进行计算,再将计算结果压入栈中。最后,如果栈中只有一个元素,那么它就是表达式的结果。否则,表达式无效。
阅读全文