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 来实现队列。这只是一个简单的示例,实际使用中可能还需要添加其他功能和错误处理。

C++98 实现先进先出队列 (FIFO) - 使用 std::vector

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

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