3.利用类模板实现一个简单的堆栈,支持数据压栈(push)和弹栈(pop)操作,要求 至少支持 int、float、double。
时间: 2024-03-02 14:49:33 浏览: 69
类来实现堆栈
5星 · 资源好评率100%
好的,可以使用以下的类模板实现一个简单的堆栈:
```c++
template <typename T>
class Stack {
private:
T* data; // 数组指针
int top; // 栈顶元素下标
int size; // 数组大小
public:
Stack(int s) : size(s), top(-1) {
data = new T[size];
}
~Stack() {
delete[] data;
}
void push(T val) {
if (top == size - 1) {
// 栈已满
throw "Stack is full";
}
data[++top] = val;
}
T pop() {
if (top == -1) {
// 栈已空
throw "Stack is empty";
}
return data[top--];
}
};
```
使用方法示例:
```c++
Stack<int> intStack(10);
intStack.push(1);
intStack.push(2);
cout << intStack.pop() << endl; // 输出 2
Stack<double> doubleStack(5);
doubleStack.push(1.0);
doubleStack.push(2.0);
cout << doubleStack.pop() << endl; // 输出 2.0
```
注意,该实现中没有考虑堆栈的扩容与缩容,实际使用中需要视情况进行优化。
阅读全文