Ich verwende std :: queue zum Implementieren der JobQueue-Klasse. (Grundsätzlich verarbeitet diese Klasse jeden Job auf FIFO-Weise). In einem Szenario möchte ich die Warteschlange auf einmal löschen (alle Jobs aus der Warteschlange löschen). In der Klasse std :: queue ist keine eindeutige Methode verfügbar.
Wie implementiere ich die Clear-Methode für die JobQueue-Klasse effizient?
Ich habe eine einfache Lösung, um in eine Schleife zu springen, aber ich suche nach besseren Wegen.
//Clears the job queue
void JobQueue ::clearJobs()
{
// I want to avoid pop in a loop
while (!m_Queue.empty())
{
m_Queue.pop();
}
}
deque
unterstützt klar