C++ 模板类实现队列数据结构
C++ 模板类实现队列数据结构
本文将详细解释使用 C++ 模板类实现队列数据结构的代码,并对每行代码进行逐一解读。
代码示例
template <typename T>
class Queue {
private:
vector<T> data;
public:
void enqueue(T item) {
data.push_back(item);
}
void dequeue() {
if (!isEmpty()) {
data.erase(data.begin());
}
}
T front() {
if (!isEmpty()) {
return data[0];
}
return T();
}
bool isEmpty() {
return data.empty();
}
};代码解释
template <typename T>:这是一个类模板声明,表示定义了一个通用的类模板,其中的T是一个占位符,代表将来可以替换成任意类型。class Queue:定义了一个名为Queue的类。private::接下来的成员变量和成员函数都是私有的,只能在类内部访问。vector<T> data;:定义了一个私有成员变量data,它是一个vector容器,存储的类型是T。public::接下来的成员变量和成员函数都是公有的,可以在类外部访问。void enqueue(T item):定义了一个公有成员函数enqueue,它接受一个参数item,类型为T,表示将item添加到队列中。data.push_back(item);:在data容器的末尾添加一个元素item。void dequeue():定义了一个公有成员函数dequeue,表示从队列中移除一个元素。if (!isEmpty()):判断队列是否为空,如果不为空则执行下面的代码。data.erase(data.begin());:从data容器中删除第一个元素。T front():定义了一个公有成员函数front,返回队列的第一个元素。if (!isEmpty()):判断队列是否为空,如果不为空则执行下面的代码。return data[0];:返回data容器的第一个元素。return T();:如果队列为空,则返回一个类型为T的默认值。bool isEmpty():定义了一个公有成员函数isEmpty,判断队列是否为空。return data.empty();:返回data容器是否为空。
通过使用模板类,我们可以创建不同数据类型的队列,例如:Queue<int> 或 Queue<string>,这体现了 C++ 模板类的强大之处。
原文地址: https://www.cveoy.top/t/topic/qeVB 著作权归作者所有。请勿转载和采集!