类模板的使用-栈功能实现c++
时间: 2024-05-13 09:12:45 浏览: 107
栈的应用用c++ 实现
5星 · 资源好评率100%
类模板是 C++ 中的一种特殊类型,它允许您编写通用类,以适用于多个不同的数据类型。类模板中的成员函数和数据成员可以使用任何数据类型。使用类模板可以有效地减少重复的代码量,并且可以提高代码的可读性和可维护性。
下面是一个栈(stack)类的类模板示例,用于实现基本的栈功能:
```
template <class T>
class Stack {
private:
T* stackArray; // 存储栈元素的数组指针
int stackSize; // 栈的最大大小
int top; // 栈顶元素的索引
public:
// 构造函数
Stack(int size) {
stackArray = new T[size];
stackSize = size;
top = -1;
}
// 析构函数
~Stack() {
delete [] stackArray;
}
// 压栈操作
void push(T value) {
if (top == stackSize - 1) {
cout << "Stack is full!\n";
} else {
top++;
stackArray[top] = value;
}
}
// 弹栈操作
void pop() {
if (isEmpty()) {
cout << "Stack is empty!\n";
} else {
top--;
}
}
// 返回栈顶元素值
T peek() {
if (isEmpty()) {
cout << "Stack is empty!\n";
return T();
} else {
return stackArray[top];
}
}
// 判断栈是否为空
bool isEmpty() {
return top == -1;
}
// 判断栈是否已满
bool isFull() {
return top == stackSize - 1;
}
};
```
在此示例中,我们使用了类模板 `template <class T>`,其中 `T` 是通用数据类型的占位符。这个占位符可以被任何数据类型替换。例如,如果您想要创建一个存储整数类型的栈,则可以这样声明:
```
Stack<int> intStack(10);
```
其中 `int` 是替换 `T` 的实际数据类型。
阅读全文