#include <iostream>
#include <vector>
#include <stdexcept> // 用于抛出异常
using namespace std;
class Stack {
private:
vector<int> elements; // 使用vector来存储栈中的元素
public:
// 压栈操作
void push(int val) {
elements.push_back(val); // 在vector的末尾添加元素,模拟压栈
}
// 弹栈操作,并返回栈顶元素
int pop() {
if (elements.empty()) {
throw runtime_error("Stack is empty!"); // 如果栈为空,则抛出异常
}
int top = elements.back(); // 获取栈顶元素
elements.pop_back(); // 移除栈顶元素
return top;
}
// 检查栈是否为空
bool isEmpty() const {
return elements.empty();
}
// 获取栈的大小
size_t size() const {
return elements.size();
}
};
int main() {
Stack s;
// 压栈操作
s.push(1);
s.push(2);
s.push(3);
// 弹栈操作并打印
while (!s.isEmpty()) {
cout << s.pop() << " "; // 输出: 3 2 1
}
return 0;
}