Tôi đang sử dụng std :: queue để triển khai lớp JobQueue. (Về cơ bản lớp học này xử lý từng công việc theo cách thức của FIFO). Trong một kịch bản, tôi muốn xóa hàng đợi trong một lần chụp (xóa tất cả các công việc khỏi hàng đợi). Tôi không thấy bất kỳ phương thức rõ ràng nào có sẵn trong lớp std :: queue.
Làm cách nào để triển khai hiệu quả phương thức rõ ràng cho lớp JobQueue?
Tôi có một giải pháp đơn giản là xuất hiện trong một vòng lặp nhưng tôi đang tìm kiếm những cách tốt hơn.
//Clears the job queue
void JobQueue ::clearJobs()
{
// I want to avoid pop in a loop
while (!m_Queue.empty())
{
m_Queue.pop();
}
}
deque
hỗ trợ rõ ràng