C++98 实现先进先出队列:使用 std::vector<job_st>

本文使用 C++98 标准实现先进先出队列,并提供示例代码展示如何创建、添加、移除作业。

代码示例

#include <iostream>
#include <vector>

typedef struct
{
    char taskName[256];
    int job_id;
    enum TASKType { TYPE_A, TYPE_B, TYPE_C } t;
} job_st;

typedef job_st* pjob_t;

class Queue
{
private:
    std::vector<pjob_t> job_restore_vector;

public:
    void enqueue(pjob_t job)
    {
        job_restore_vector.push_back(job);
    }

    pjob_t dequeue()
    {
        if (job_restore_vector.empty())
            return NULL;
        
        pjob_t job = job_restore_vector.front();
        job_restore_vector.erase(job_restore_vector.begin());
        
        return job;
    }

    bool isEmpty()
    {
        return job_restore_vector.empty();
    }
};

int main()
{
    Queue queue;
    
    job_st job1;
    strcpy(job1.taskName, 'Task 1');
    job1.job_id = 1;
    job1.t = job_st::TYPE_A;
    queue.enqueue(&job1);
    
    job_st job2;
    strcpy(job2.taskName, 'Task 2');
    job2.job_id = 2;
    job2.t = job_st::TYPE_B;
    queue.enqueue(&job2);
    
    job_st job3;
    strcpy(job3.taskName, 'Task 3');
    job3.job_id = 3;
    job3.t = job_st::TYPE_C;
    queue.enqueue(&job3);
    
    while (!queue.isEmpty())
    {
        pjob_t job = queue.dequeue();
        std::cout << 'Dequeued Job: ' << job->taskName << std::endl;
    }
    
    return 0;
}

代码说明

  • 代码中使用 std::vector 容器来实现队列,job_st 结构体用于表示作业。
  • Queue 类提供 enqueuedequeue 函数分别用于向队列中添加和移除作业。
  • main 函数中,创建了三个作业并依次加入队列,然后使用循环从队列中取出作业并打印出来。

总结

本代码示例展示了使用 C++98 标准实现先进先出队列的一种方法。通过使用 std::vector 容器,可以方便地实现队列的添加、移除和判断空队列等操作。

C++98 实现先进先出队列:使用 std::vector<job_st>

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

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