2. 编程题:设计栈类模板。
时间: 2024-06-15 18:09:15 浏览: 125
栈是一种常见的数据结构,它遵循先进后出(LIFO)的原则。设计一个栈类模板可以使我们在编程中更加灵活地使用栈。
下面是一个简单的栈类模板的设计:
```cpp
template <typename T>
class Stack {
private:
std::vector<T> data; // 使用vector作为底层容器存储数据
public:
void push(const T& element) {
data.push_back(element); // 将元素添加到栈顶
}
void pop() {
if (!empty()) {
data.pop_back(); // 移除栈顶元素
}
}
T& top() {
return data.back(); // 返回栈顶元素的引用
}
bool empty() const {
return data.empty(); // 判断栈是否为空
}
int size() const {
return data.size(); // 返回栈中元素的个数
}
};
```
使用该栈类模板,我们可以创建不同类型的栈对象,例如:
```cpp
Stack<int> intStack; // 创建一个存储整数的栈对象
intStack.push(1);
intStack.push(2);
intStack.push(3);
std::cout << intStack.top() << std::endl; // 输出3
intStack.pop();
std::cout << intStack.top() << std::endl; // 输出2
Stack<std::string> stringStack; // 创建一个存储字符串的栈对象
stringStack.push("Hello");
stringStack.push("World");
std::cout << stringStack.top() << std::endl; // 输出"World"
```
阅读全文