تخطَّ إلى المحتوى

std::queue

الطابور (FIFO) std::queue

std::queue حاوية مكيّفة تطبّق مبدأ FIFO — أول عنصر يدخل هو أول عنصر يخرج، بواجهة push/pop/front/back فقط.

مثل stack تمامًا من ناحية كونها container adapter (غلاف حول deque افتراضيًا)، لكن بمبدأ عكسي: push تضيف بالنهاية، وpop تزيل من البداية — تمامًا كطابور انتظار حقيقي. front تعطي أول عنصر (التالي بالدور)، وback تعطي آخر عنصر أُضيف. تُستخدم بكثرة بخوارزميات البحث بالعرض أولًا (BFS) ومعالجة المهام بترتيب وصولها.

الصياغة

std::queue<Type> name;
name.push(value);
name.pop();
name.front();

📄 مثال

#include <queue>

std::queue<std::string> tasks;
tasks.push("مهمة1");
tasks.push("مهمة2");

std::cout << tasks.front(); // مهمة1 — أول من دخل
tasks.pop();
std::cout << tasks.front(); // مهمة2

أهم النقاط

العنصرالوظيفة
push(v)إضافة عنصر بنهاية الطابور
pop()إزالة العنصر الأول (الأقدم) — لا تُرجع قيمته
front() / back()الاطلاع على أول عنصر (التالي بالدور) أو آخر عنصر أُضيف

💡 نصائح عملية

  • الأداة القياسية لتطبيق خوارزمية BFS (البحث بالعرض أولًا) على الأشجار والرسوم البيانية
  • تحقق من !q.empty() دائمًا قبل front()/pop() لنفس سبب stack تمامًا

⚠️ أخطاء شائعة

  • الخلط بين stack (LIFO) وqueue (FIFO) واستخدام الحاوية الخطأ لمنطق يحتاج الترتيب المعاكس
  • استدعاء front() أو pop() على طابور فارغ بدون فحص empty() أولًا

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار CPP الكامل بالعربي.