C++98 实现先进先出队列:使用 std::vector<job_st>
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类提供enqueue和dequeue函数分别用于向队列中添加和移除作业。- 在
main函数中,创建了三个作业并依次加入队列,然后使用循环从队列中取出作业并打印出来。
总结
本代码示例展示了使用 C++98 标准实现先进先出队列的一种方法。通过使用 std::vector 容器,可以方便地实现队列的添加、移除和判断空队列等操作。
原文地址: https://www.cveoy.top/t/topic/g049 著作权归作者所有。请勿转载和采集!