अंतिम अद्यतन:2026-10-12
C++ stack calculator design¶
एक stack calculator लिखें, design इस प्रकार है:
+,-,*,/operations का समर्थन- Postfix input का समर्थन
उदाहरण के लिए:
आउटपुट: इसे implement कैसे करें?इसमें सबसे key दो प्रश्न:
1.Tokenization कैसे करें
2.Stack कैसे implement करें
1.Tokenization कैसे करें¶
सबसे पहले define करें कि input एक string है, space separated, फिर हम istringstream से हर token split कर सकते हैं, basic framework है:
2.Stack कैसे implement करें¶
Calculator के लिए सबसे केंद्रीय चीज़ है push और pop।
- Number मिले तो push करें
- Operator मिले तो pop करके calculate करें
हम framework लिख सकते हैं:
if (isNumber(token)) {
pushNumber(token);
} else if (isOperator(token)) {
popAndCal(token);
} else {
throw std::runtime_error("Invalid token in expression.");
}
popAndCal calculation का core है, जैसे:
void popAndCal(const std::string& token) {
if (operandStack.size() < 2) {
throw std::runtime_error("Invalid expression.");
} else {
double operand2 = operandStack.top();
operandStack.pop();
double operand1 = operandStack.top();
operandStack.pop();
double result = performOperation(operand1, operand2, token);
operandStack.push(result);
}
}
इस तरह stack में हमारा इच्छित परिणाम store हो गया, अंत में top return कर दें।
बहुत सरल है न, मेरे साथ चर्चा करने के लिए स्वागत है।
संबंधित विषय¶
- खुद C++ FnOnce लिखना | C++那些事
- C++ gRPC छोटा project | C++那些事
- C++ inter-process communication व्यवहार | C++那些事
- C++ short URL service Demo | C++那些事
- C++17 और SQLite से directory का size निकालना | C++那些事
- Google Benchmark performance testing | C++那些事
- C++20 coroutine HTTP server | C++那些事
- Protobuf ZeroCopy serialization | C++那些事
- pybind11 से Python तेज़ करना | C++那些事