栈的基本操作c++用类实现
时间: 2024-10-17 08:13:15 浏览: 19
C++使用模板类实现链式栈
栈是一种线性的数据结构,遵循“先进后出”(LIFO,Last In First Out)的原则。在C++中,我们可以使用类来模拟栈的行为。下面是一个简单的栈类实现,包含了常见的栈操作:
```cpp
class Stack {
private:
std::vector<int> elements; // 存储元素的容器
public:
// 构造函数,初始化一个空栈
Stack() {}
// 添加元素到栈顶
void push(int value) {
elements.push_back(value);
}
// 删除并返回栈顶元素(如果有的话)
int pop() {
if (isEmpty()) {
throw std::runtime_error("Stack is empty");
}
return elements.back(); // 返回最后一个元素
}
// 查看栈顶元素但不删除它
int top() const {
if (isEmpty()) {
throw std::runtime_error("Stack is empty");
}
return elements.back();
}
// 检查栈是否为空
bool isEmpty() const {
return elements.empty();
}
// 返回栈的大小(元素数量)
size_t size() const {
return elements.size();
}
// 清空栈
void clear() {
elements.clear();
}
};
```
这个`Stack`类包含了一些基本的操作,如`push`(入栈)、`pop`(出栈)、`top`(查看栈顶元素)、`isEmpty`(判断是否为空)、`size`(获取栈大小)以及`clear`(清空栈)。在实际使用时,你可以创建一个`Stack`对象,并通过它的成员函数来进行操作。
阅读全文