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();
    }
};

代码解释

  1. template <typename T>:这是一个类模板声明,表示定义了一个通用的类模板,其中的 T 是一个占位符,代表将来可以替换成任意类型。
  2. class Queue:定义了一个名为 Queue 的类。
  3. private::接下来的成员变量和成员函数都是私有的,只能在类内部访问。
  4. vector<T> data;:定义了一个私有成员变量 data,它是一个 vector 容器,存储的类型是 T
  5. public::接下来的成员变量和成员函数都是公有的,可以在类外部访问。
  6. void enqueue(T item):定义了一个公有成员函数 enqueue,它接受一个参数 item,类型为 T,表示将 item 添加到队列中。
  7. data.push_back(item);:在 data 容器的末尾添加一个元素 item
  8. void dequeue():定义了一个公有成员函数 dequeue,表示从队列中移除一个元素。
  9. if (!isEmpty()):判断队列是否为空,如果不为空则执行下面的代码。
  10. data.erase(data.begin());:从 data 容器中删除第一个元素。
  11. T front():定义了一个公有成员函数 front,返回队列的第一个元素。
  12. if (!isEmpty()):判断队列是否为空,如果不为空则执行下面的代码。
  13. return data[0];:返回 data 容器的第一个元素。
  14. return T();:如果队列为空,则返回一个类型为 T 的默认值。
  15. bool isEmpty():定义了一个公有成员函数 isEmpty,判断队列是否为空。
  16. return data.empty();:返回 data 容器是否为空。

通过使用模板类,我们可以创建不同数据类型的队列,例如:Queue<int>Queue<string>,这体现了 C++ 模板类的强大之处。

C++ 模板类实现队列数据结构

原文地址: https://www.cveoy.top/t/topic/qeVB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录