用c++编写程序定义一个栈模板,实现栈的基本操作。
时间: 2023-10-22 09:18:42 浏览: 92
用C++写的关于栈的程序
好,以下是一个基本的栈模板实现:
```cpp
#include <iostream>
#include <vector>
template<typename T>
class Stack {
public:
Stack() {}
void push(const T& value) {
elements.push_back(value);
}
void pop() {
if (elements.empty()) {
throw std::out_of_range("Stack<>::pop(): empty stack");
}
elements.pop_back();
}
T& top() {
if (elements.empty()) {
throw std::out_of_range("Stack<>::top(): empty stack");
}
return elements.back();
}
bool empty() const {
return elements.empty();
}
size_t size() const {
return elements.size();
}
private:
std::vector<T> elements;
};
int main() {
Stack<int> s;
s.push(1);
s.push(2);
s.push(3);
std::cout << "Stack size: " << s.size() << std::endl;
std::cout << "Stack top: " << s.top() << std::endl;
s.pop();
std::cout << "Stack size after pop: " << s.size() << std::endl;
}
```
这个栈模板使用了一个 vector 来存储元素,实现了 push、pop、top、empty 和 size 这些基本操作。其中 top 和 pop 操作都会抛出一个 std::out_of_range 异常,如果栈为空的话。在 main 函数中,我们用 int 类型实例化了一个 Stack,然后进行了 push、pop、top 等操作。
阅读全文