C++98 实现先进先出队列 (FIFO) - 使用 std::vector
C++98 实现先进先出队列 (FIFO) - 使用 std::vector
在 C++98 标准下,我们可以使用数组来实现一个简单的先进先出队列。下面是一个使用 C++98 标准实现的先进先出队列的示例代码:
#include <iostream>
#include <vector>
class JobRestoreQueue {
private:
std::vector<int> queue;
public:
void enqueue(int job) {
queue.push_back(job);
}
int dequeue() {
if (queue.empty()) {
std::cout << 'Queue is empty!' << std::endl;
return -1; // or throw an exception
}
int job = queue.front();
queue.erase(queue.begin());
return job;
}
bool isEmpty() {
return queue.empty();
}
};
int main() {
JobRestoreQueue jobQueue;
// Enqueue jobs
jobQueue.enqueue(1);
jobQueue.enqueue(2);
jobQueue.enqueue(3);
jobQueue.enqueue(4);
// Dequeue jobs
while (!jobQueue.isEmpty()) {
int job = jobQueue.dequeue();
std::cout << 'Processing job: ' << job << std::endl;
}
return 0;
}
在上面的代码中,我们定义了一个 JobRestoreQueue 类来实现先进先出队列。这个类包含了一个私有的 std::vector<int> 成员变量 queue 来保存队列中的元素。
enqueue() 函数用于将元素添加到队列的末尾,它使用 vector.push_back() 函数实现。
dequeue() 函数用于从队列的头部移除并返回一个元素,它使用 vector.front() 函数来获取第一个元素,然后使用 vector.erase() 函数将其从向量中移除。
isEmpty() 函数用于检查队列是否为空,如果队列为空,它将返回 true,否则返回 false。
在 main() 函数中,我们创建了一个 JobRestoreQueue 对象 jobQueue,并使用 enqueue() 函数将一些作业添加到队列中。然后使用 dequeue() 函数逐个处理队列中的作业,直到队列为空。
请注意,由于 C++98 标准不支持 std::queue 容器,我们使用 std::vector 来实现队列。这只是一个简单的示例,实际使用中可能还需要添加其他功能和错误处理。
原文地址: https://www.cveoy.top/t/topic/g00P 著作权归作者所有。请勿转载和采集!