c++数据结构中类模板是如何在主函数中使用的,给出一个完整的简单程序说明
时间: 2024-02-25 19:52:48 浏览: 21
C++ 中的类模板是一种通用的类,可以用来定义具有相同属性和方法的不同数据类型。
以下是一个完整的简单程序,演示了如何定义和使用一个类模板:
```c++
#include<iostream>
using namespace std;
template<typename T>
class Stack {
private:
T* data;
int top;
int maxSize;
public:
Stack(int sz) {
data = new T[sz];
top = -1;
maxSize = sz;
}
~Stack() {
delete[] data;
}
bool isEmpty() {
return top == -1;
}
bool isFull() {
return top == maxSize - 1;
}
void push(T item) {
if (isFull()) {
cout << "Stack Overflow!" << endl;
return;
}
top++;
data[top] = item;
}
T pop() {
if (isEmpty()) {
cout << "Stack Underflow!" << endl;
return T();
}
T item = data[top];
top--;
return item;
}
};
int main() {
Stack<int> intStack(5);
intStack.push(1);
intStack.push(2);
intStack.push(3);
cout << "Pop: " << intStack.pop() << endl;
cout << "Pop: " << intStack.pop() << endl;
cout << "Pop: " << intStack.pop() << endl;
cout << "Is empty? " << intStack.isEmpty() << endl;
Stack<char> charStack(5);
charStack.push('a');
charStack.push('b');
charStack.push('c');
cout << "Pop: " << charStack.pop() << endl;
cout << "Pop: " << charStack.pop() << endl;
cout << "Pop: " << charStack.pop() << endl;
cout << "Is empty? " << charStack.isEmpty() << endl;
return 0;
}
```
这个程序定义了一个模板类 `Stack`,用于实现一个基本的栈数据结构。栈的大小由用户指定,可以存储任何类型的数据。在主函数中,我们分别创建了一个 `int` 类型和一个 `char` 类型的栈,演示了如何使用模板类进行不同类型的操作。