仿写队列类容器,实现基本操作:push、pop、front、back、empty、 size.
时间: 2023-07-04 16:19:39 浏览: 86
php实现队列操作的类
好的,下面是一个基本的队列类容器的实现,包含了push、pop、front、back、empty、size这些基本操作:
```c++
#include <iostream>
#include <list>
using namespace std;
template <typename T>
class Queue {
private:
list<T> data;
public:
void push(const T& item) {
data.push_back(item);
}
void pop() {
if (empty()) {
throw out_of_range("Queue is empty");
}
data.pop_front();
}
T& front() {
if (empty()) {
throw out_of_range("Queue is empty");
}
return data.front();
}
T& back() {
if (empty()) {
throw out_of_range("Queue is empty");
}
return data.back();
}
bool empty() {
return data.empty();
}
int size() {
return data.size();
}
};
```
这个队列类容器是一个模板类,可以存储任何类型的数据。它内部使用了一个list来存储数据,实现了push、pop、front、back、empty、size这些基本操作。其中,push和pop分别用于往队列中添加元素和删除队列中的头元素;front和back分别用于获取队列的头元素和尾元素;empty用于判断队列是否为空,size用于获取队列中元素的个数。
使用时,可以像下面这样使用:
```c++
int main() {
Queue<int> q;
q.push(1);
q.push(2);
q.push(3);
cout << "size: " << q.size() << endl; // 输出:size: 3
cout << "front: " << q.front() << endl; // 输出:front: 1
cout << "back: " << q.back() << endl; // 输出:back: 3
q.pop();
cout << "front after pop: " << q.front() << endl; // 输出:front after pop: 2
return 0;
}
```
阅读全文