C++开发:巧用模板与指针实现循环队列
在C++中,可以使用模板和指针来实现一个循环队列。以下是一个简单的实现: ```cpp template <typename T> class CircularQueue { private: int front, rear, capacity; T* queue; public: CircularQueue(int size) { front = -1; rear = -1; capacity = size; queue = new T[size]; } ~CircularQueue() { delete[] queue; } bool isFull() { return (rear + 1) % capacity == front; } bool isEmpty() { return front == -1; } void enqueue(T value) { if (isFull()) { cout << "Queue is full" << endl; return; } if (isEmpty()) { front = rear = 0; } else { rear = (rear + 1) % capacity; } queue[rear] = value; } T dequeue() { if (isEmpty()) { cout << "Queue is empty" << endl; return T(); } T value = queue[front]; if (front == rear) { front = rear = -1; } else { front = (front + 1) % capacity; } return value; } T front() { if (isEmpty()) { cout << "Queue is empty" << endl; return T(); } return queue[front]; } }; ``` 在这个实现中,我们使用一个数组来存储队列的元素,使用front和rear指针来跟踪队列的头部和尾部。当队列满时,我们不能添加更多的元素。当队列为空时,我们不能从队列中删除元素。 ######[AI写代码神器 | 378点数解答 | 2023-11-09 00:39:05]
- C++开发必知:指针与引用的六大区别解析(阿里通义 | 355点数解答 | 2023-11-09 00:44:49)234
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)345
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)464
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)356
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)313
- C#工程师必知:数组、链表、哈希、队列、栈数据结构优缺点大揭秘! (百度文心 | 561点数解答 | 2023-11-09 17:56:30)264
- Spring项目:实现UserMapper接口及XML映射文件,查询所有用户信息(GPT | 445点数解答 | 2024-09-12 14:40:40)201
- 解决 consoleapplication40.cpp 中 buildtree 模板参数推导失败错误的方法(字节豆包 | 138点数解答 | 2024-11-10 23:42:06)240
- 揭秘!十进制整数转其他进制用啥存储结构最合适?答案竟是它!(字节豆包 | 57点数解答 | 2024-11-13 01:21:11)236
- Android 课程作业考试管理 APP 开发:全功能实现与上线优化之路(GPT | 84点数解答 | 2024-12-14 13:46:35)277
- Android 学生学习管理 APP:功能完备开发全攻略(字节豆包 | 30点数解答 | 2024-12-14 13:47:04)238
- Java 实现仿 Windows 资源管理器:文件管理器功能全解析与代码示例(字节豆包 | 623点数解答 | 2025-01-01 14:59:04)250