将栈设计成一个类模板,在栈中存放任意类型的数据c++
时间: 2024-06-18 22:05:17 浏览: 7
当我们需要在栈中存放任意类型的数据时,可以通过设计一个类模板来实现。下面是一个简单的实现方式:
```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函数用来弹出栈顶元素。在使用该类模板时,我们可以通过传递不同的类型来实现栈中存放任意类型的数据。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)