6-3 一个简单的队列类模板 分数 10 作者 张德慧 单位 西安邮电大学 请按照下列简单的整数队列类创建一个简单的队列类模板。 整数队列类如下: const int SIZE=100; //整数队列类 class Queue { int q[SIZE]; int front; //队列头 int rear; //队列尾 public: Queue( ) { front = rear = 0; } void put(int i); // 在队尾放置一个数据 int get( ); // 从队列头部取一个数据 };
时间: 2024-02-07 13:02:31 浏览: 66
好的,这是一个简单的队列类模板实现:
```cpp
template<typename T, int SIZE>
class Queue {
T q[SIZE];
int front;
int rear;
public:
Queue() {
front = rear = 0;
}
void put(T i) {
if (rear == SIZE) {
throw "Queue overflow";
}
q[rear++] = i;
}
T get() {
if (front == rear) {
throw "Queue underflow";
}
return q[front++];
}
};
```
其中,`T` 是模板类型参数,表示队列中元素的类型;`SIZE` 是常量模板参数,表示队列的最大容量。使用模板参数可以实现对不同类型的队列以及不同容量的队列进行定义。
该模板实现了队列的基本操作,包括在队尾放置一个数据和从队头取出一个数据。在队满和队空的情况下,会抛出相应的异常信息。
你可以使用以下方式来定义和使用该模板:
```cpp
Queue<int, 100> q; // 定义一个最大容量为 100 的整型队列
q.put(1); // 在队尾放置一个整数
int num = q.get(); // 从队头取出一个整数
Queue<double, 50> q2; // 定义一个最大容量为 50 的双精度浮点型队列
q2.put(3.14); // 在队尾放置一个双精度浮点数
double num2 = q2.get(); // 从队头取出一个双精度浮点数
```
阅读全文