190 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			190 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: queue
 | 
						|
localeTitle: طابور
 | 
						|
---
 | 
						|
## طوابير
 | 
						|
 | 
						|
`queue` هي واحدة من الحاويات الأكثر استخدامًا في C ++. الحاوية عبارة عن بنية بيانات تخزن مجموعة من الكائنات ، بعضها في ترتيب ، وبعضها لا. تحتوي كل الحاويات على مجموعة مختلفة من الوظائف التي تسمح لك بالوصول إلى كائن (كائنات) في تلك المجموعة.
 | 
						|
 | 
						|
`std::queue` جزء من المكتبة القياسية C ++ (ومن هنا pred `std::` ويسمح لك بتخزين البيانات في First Out First (FIFO). ملاحظة: **يجب أن تكون كافة الكائنات الموجودة في قائمة انتظار من نفس نوع البيانات**
 | 
						|
 | 
						|
يدخل نوع البيانات الذي تقوم بتخزينه في قائمة الانتظار داخل أقواس زاوية بجوار الكلمة الرئيسية في قائمة الانتظار. على سبيل المثال ، إذا كنت ترغب في تخزين مجموعة من الأعداد الصحيحة ، فستكون قائمة الانتظار `std::queue<int> queue_name`
 | 
						|
 | 
						|
### Queue LIFO شرح
 | 
						|
 | 
						|
تتيح لنا `queue` الضغط على / enqueue و pop / dequeue بترتيب معين. **دفع** يعني إدخال كائن في مقدمة قائمة الانتظار. **البوب** تعني سحب الكائن "الأقدم" من نهاية قائمة الانتظار. لذا عندما تضغط عليه في المقدمة وعندما تطفو فإنك تستخرج العنصر الأقدم.
 | 
						|
 | 
						|

 | 
						|
 | 
						|
### عمليات قائمة الانتظار
 | 
						|
 | 
						|
يدعم حاوية قائمة الانتظار العمليات التالية:
 | 
						|
 | 
						|
*   دفع (enqueue)
 | 
						|
*   pop (dequeue)
 | 
						|
*   فارغة
 | 
						|
*   بحجم
 | 
						|
*   أمامي
 | 
						|
*   الى الخلف
 | 
						|
 | 
						|
#### إدفع
 | 
						|
 | 
						|
يسمح لك بإدراج عنصر جديد في نهاية قائمة الانتظار ، بعد العنصر الأخير الحالي.
 | 
						|
 | 
						|
 `//Push operation in Queue 
 | 
						|
 #include <iostream>       // std::cout 
 | 
						|
 #include <queue>          // std::queue 
 | 
						|
 
 | 
						|
 int main () 
 | 
						|
 { 
 | 
						|
  std::queue<int> q; 
 | 
						|
 
 | 
						|
  q.push(1);    //Pushing 1 at front of the queue 
 | 
						|
  q.push(2);    //Pushing 2 at front of the queue 
 | 
						|
 
 | 
						|
  return 0; 
 | 
						|
 } 
 | 
						|
` 
 | 
						|
 | 
						|
#### أمامي
 | 
						|
 | 
						|
يسمح لك بالوصول إلى العنصر التالي في قائمة الانتظار دون إزالته. العنصر التالي هو العنصر "الأقدم" في قائمة الانتظار.
 | 
						|
 | 
						|
 `//Front operation in Queue 
 | 
						|
 #include <iostream>       // std::cout 
 | 
						|
 #include <queue>          // std::queue 
 | 
						|
 
 | 
						|
 int main () 
 | 
						|
 { 
 | 
						|
  std::queue<int> q; 
 | 
						|
 
 | 
						|
  q.push(1);    //Pushing 1 at front of the queue 
 | 
						|
  q.push(2);    //Pushing 2 at front of the queue 
 | 
						|
 
 | 
						|
  std::cout<<q.front()<<'\n';     //Accessing the front of the queue 
 | 
						|
  std::cout<<q.front()<<'\n';     //Accessing the front of the queue 
 | 
						|
 
 | 
						|
  return 0; 
 | 
						|
 } 
 | 
						|
` 
 | 
						|
 | 
						|
 `Output: 
 | 
						|
 1 
 | 
						|
 1 
 | 
						|
` 
 | 
						|
 | 
						|
#### فرقعة
 | 
						|
 | 
						|
يسمح لك بإزالة العنصر التالي في قائمة الانتظار ، مما يقلل بشكل فعال حجمه بمقدار واحد. العنصر الذي تمت إزالته هو العنصر "الأقدم".
 | 
						|
 | 
						|
 `//Pop operation in Queue 
 | 
						|
 #include <iostream>       // std::cout 
 | 
						|
 #include <queue>          // std::queue 
 | 
						|
 
 | 
						|
 int main () 
 | 
						|
 { 
 | 
						|
  std::queue<int> q; 
 | 
						|
 
 | 
						|
  q.push(1);    //Pushing 1 at front of the queue 
 | 
						|
  q.push(2);    //Pushing 2 at front of the queue 
 | 
						|
 
 | 
						|
  std::cout<<q.front()<<'\n';     //Accessing the front of the queue 
 | 
						|
  q.pop();                        //Removing the oldest element 
 | 
						|
  std::cout<<q.front()<<'\n';     //Accessing the front of the queue 
 | 
						|
  q.pop();                        //Removing the oldest element 
 | 
						|
 
 | 
						|
  return 0; 
 | 
						|
 } 
 | 
						|
` 
 | 
						|
 | 
						|
 `Output: 
 | 
						|
 1 
 | 
						|
 2 
 | 
						|
` 
 | 
						|
 | 
						|
#### بحجم
 | 
						|
 | 
						|
لعرض عدد العناصر في `queue` .
 | 
						|
 | 
						|
 `//Size operation in Queue 
 | 
						|
 #include <iostream>       // std::cout 
 | 
						|
 #include <queue>          // std::queue 
 | 
						|
 
 | 
						|
 int main () 
 | 
						|
 { 
 | 
						|
  std::queue<int> q; 
 | 
						|
 
 | 
						|
  q.push(1);    //Pushing 1 at front of the queue 
 | 
						|
  q.push(2);    //Pushing 2 at front of the queue 
 | 
						|
 
 | 
						|
  std::cout<<q.size()<<'\n';     //Accessing the front of the queue 
 | 
						|
  q.pop();                        //Removing the oldest element 
 | 
						|
  std::cout<<q.size()<<'\n';     //Accessing the front of the queue 
 | 
						|
  q.pop();                        //Removing the oldest element 
 | 
						|
  std::cout<<q.size()<<'\n';     //Accessing the front of the queue 
 | 
						|
 
 | 
						|
  return 0; 
 | 
						|
 } 
 | 
						|
` 
 | 
						|
 | 
						|
 `Output: 
 | 
						|
 2 
 | 
						|
 1 
 | 
						|
 0 
 | 
						|
` 
 | 
						|
 | 
						|
#### فارغة
 | 
						|
 | 
						|
إرجاع ما إذا كانت `queue` فارغة ، أي ما إذا كان حجم قائمة الانتظار هو صفر. تقوم بإرجاع `true` إذا كان حجم قائمة الانتظار 0 أخرى بإرجاع `false`
 | 
						|
 | 
						|
\`\` \`cpp // عملية فارغة في قائمة الانتظار
 | 
						|
 | 
						|
# تتضمن // std :: cout
 | 
						|
 | 
						|
# تتضمن // std :: stack
 | 
						|
 | 
						|
انت مين () { الأمراض المنقولة جنسيا :: طابور ف.
 | 
						|
 | 
						|
q.push (1)؛ q.push (2)؛
 | 
						|
 | 
						|
بينما (q.empty ()! = true) { الأمراض المنقولة جنسيا :: محكمة << q.front () << '\\ ن'. q.pop ()؛ }
 | 
						|
 | 
						|
std :: cout << "الخروج من الحلقة" << '\\ n'؛ العودة 0 }
 | 
						|
 | 
						|
 `    Output: 
 | 
						|
    1 
 | 
						|
    2 
 | 
						|
    Out of loop 
 | 
						|
 
 | 
						|
 #### Back 
 | 
						|
 
 | 
						|
 Allows you to access the last element in the queue without removing it. 
 | 
						|
 The next element is the "newest" element in the queue. 
 | 
						|
` 
 | 
						|
 | 
						|
حزب الشعب الكمبودي // Back العملية في قائمة الانتظار
 | 
						|
 | 
						|
# تتضمن // std :: cout
 | 
						|
 | 
						|
# تتضمن // std :: queue
 | 
						|
 | 
						|
انت مين () { الأمراض المنقولة جنسيا :: طابور ف.
 | 
						|
 | 
						|
q.push (1)؛ // دفع 1 أمام قائمة الانتظار q.push (2)؛ // دفع 2 أمام قائمة الانتظار
 | 
						|
 | 
						|
الأمراض المنقولة جنسيا :: محكمة << q.back () << '\\ ن'. // الوصول إلى الجزء الخلفي من قائمة الانتظار الأمراض المنقولة جنسيا :: محكمة << q.back () << '\\ ن'. // الوصول إلى الجزء الخلفي من قائمة الانتظار
 | 
						|
 | 
						|
العودة 0 } \`\` \`
 | 
						|
 | 
						|
 `Output: 
 | 
						|
 2 
 | 
						|
 2 
 | 
						|
` 
 | 
						|
 | 
						|
### لمزيد من الموارد:
 | 
						|
 | 
						|
http://www.cplusplus.com/reference/queue/queue/
 | 
						|
 | 
						|
### اقتباسات:
 | 
						|
 | 
						|
الصورة مجاملة: https://en.wikipedia.org/wiki/FIFO _(computing_ and\_electronics) |