Bunun gibi bir ihtiyacım var. Bir fonksiyon için, bir sayı akışı olarak girdim. Demek istediğim, işlev her çağrıda tek bir numara ile aranmaya devam ediyor. Sayıların akışını depolamak için kuyruk kullanıyorum. Toplanan bir sayı kümesini yalnızca bazı koşulların karşılanması durumunda işleme koymam gerekiyor. Durumun yerine getirilmemesi durumunda, sıradaki tüm elemanları atmam ve daha sonra yeni numaralar depolamaya başladım. Kuyruğu boşaltmak için clear() yöntemini bulamadım. Yani aşağıda olduğu gibi döngü yapıyorum. kuyruğu açık() fonksiyonunu desteklemiyor Neden:std :: queue neden clear() işlevini desteklemiyor?
while(!q.empty())
q.pop();
I
How do I clear the std::queue efficiently?
Benim soruya kuyruğu temizlemek için verimli bir algoritma var mı?
Deque ve vektör clear() yöntemini destekliyorsa, sıra için onu desteklemenin teknik zorluğu nedir?
Veya yukarıdaki yukarıdaki mycase çok nadir ve bu nedenle desteklenmiyor mu? Teşekkür ederiz.
+1, Gerçi, verimli takas * * mümkündür, cevabımı gör. – sellibitze
Sanırım std :: queue çok sınırlı kullanımlara yönelik bozulmuş bir kuyruk, mesaj mı? – bobobobo
Sıra bağdaştırıcısının ardındaki mantık, eklenen öğelerin bir noktada ayıklanması ve çok öğeli silme işlemi kullanılarak kaybolmamasıdır. Bu mantıklı mı ?Her neyse, her neyse temizlenebilir ... – SirDarius