将栈设计成一个类模板,在栈中存放任意类型的数据c++
时间: 2024-06-18 18:05:17 浏览: 93
当我们需要在栈中存放任意类型的数据时,可以通过设计一个类模板来实现。下面是一个简单的实现方式:
```c++
template <typename T>
class Stack {
private:
T* data;
int top;
int capacity;
public:
Stack(int size = 10) {
data = new T[size];
top = -1;
capacity = size;
}
~Stack() {
delete[] data;
}
void push(T value) {
if (top == capacity - 1) {
std::cout << "Stack overflow!\n";
return;
}
data[++top] = value;
}
T pop() {
if (top == -1) {
std::cout << "Stack underflow!\n";
return T();
}
return data[top--];
}
};
```
这个类模板中,我们使用了一个指针来存储数据,top表示栈顶元素的下标,capacity表示栈的容量。push函数用来将数据压入栈中,pop函数用来弹出栈顶元素。在使用该类模板时,我们可以通过传递不同的类型来实现栈中存放任意类型的数据。
阅读全文