English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل الأساسيات لـ C++

تحكم في السيرورة C++

الوظائف في C++

مجموعات C++ وروابط

بنيات البيانات C++

فئات C++ ورموزها

المراجع في C++

الوراثة في C++

دليل C++ STL

دليل مرجعي C++

Queue (الطابور) في C++

في مجال علوم الكمبيوتر، نحن نعمل على جميع أنواع البرامج. لكل منهم مجالهم وأدواتهم. بناءً على هدف إنشاء البرنامج والبيئة، لدينا العديد من بنيات البيانات المتاحة للاختيار. واحدة من هذه هي "الخط". قبل مناقشة هذا النوع من البيانات، دعونا نلقي نظرة على نحوه.

النحو

template<class T, class Container = deque<T> > class queue;

هذه بنية البيانات تناسب تقنية FIFO، حيث يعني FIFO الدخول أولاً الخروج أولاً. يتم استخراج العنصر الذي تم إدراجه أولاً، وبهذا الشكل. هناك عنصر يُدعى "البداية"، وهو العنصر الموجود في المقدمة أو في الموضع الأول، هناك أيضًا عنصر يُدعى "النهاية"، وهو العنصر الموجود في النهاية. في الخط العادي، يتم إدراج العناصر في النهاية، والتحذير من الأمام.

يُفترض أن يكون الخط في منطقة التطبيق منطقة من مروبادجير.

يجب أن يدعم الكونترولر القائمة التالية من العمليات:

  • empty

  • size

  • push_back

  • pop_front

  • front

  • back

معامل_النمط

Tالنوع_المحدد_بالقيمة: يحدد النوع الذي سيحتفظ به مروبادجير الـ

المعينةالنوع_المحدد_بالقيمة

نوع_العضو

فيما يلي قائمة بأنواع أعضاء الخط، مع وصفها القصير.

نوع_العضووصف
value_typeيحدد نوع العنصر.
container_typeيحدد نوع الكتلة الأساسية.
size_typeيحدد نطاق حجم العنصر.
referenceإنه نوع الاستدلال للصفي.
const_referenceإنه نوع الاستدلال للصفي المكون من القيم الثابتة.

وظيفة

باستخدام الوظائف، يمكن استخدام الكائنات أو المتغيرات في مجال البرمجة. يقدم الصف العديد من الوظائف التي يمكن استخدامها أو إدراجها في البرنامج.

وظيفةوصف
(constructor)يستخدم هذا الدالة لبناء كتلة صفي.
emptyيستخدم هذا الدالة لتجربة ما إذا كانت الصف فارغة. إذا كانت الصف فارغة، فإن هذا الدالة تعود true، وإلا تعود false.
sizeيعود هذا الدالة بعدد العناصر في الصف.
frontيعود هذا الدالة بالعنصر الأول. العنصر يلعب دورًا مهمًا جدًا، لأن جميع العمليات الإزالة تتم على العنصر الأمامي.
backيعود هذا الدالة بالعنصر الأخير. العنصر يلعب دورًا مهمًا جدًا، لأن جميع العمليات الإدراج تتم على العنصر الخلفي.
pushيستخدم هذا الدالة لإدراج عنصر جديد في نهاية الصف.
popيستخدم هذا الدالة لإزالة العنصر الأول.
emplaceيستخدم هذا الدالة لإدراج عنصر جديد فوق العنصر الحالي في نهاية الصف.
swapيستخدم هذا الدالة لتغيير محتويات الكتلين في المراجع.
علاقات علاقاتوظائف غير الأعضاء تحدد العلاقات المطلوبة للصف.
uses allocator<queue>كما يُقال، الوظائف غير الأعضاء تستخدم مزيل القيمة للصف.

مثال: برنامج بسيط يظهر استخدام الوظائف الأساسية للصف.

#include <iostream>
#include <queue>
using namespace std;
void showsg(queue<int> sg)
{
	queue<int> ss = sg;
	while (!ss.empty())
	{
		cout << '\t' << ss.front();
		ss.pop();
	}
	cout << '\n';
}
int main()
{
	queue<int> fquiz;
	fquiz.push(10);
	fquiz.push(20);
	fquiz.push(30);
	cout << "فريق fquiz هو : ";
	showsg(fquiz);
	cout << "\nfquiz.size() : " << fquiz.size();
	cout << "\nfquiz.front() : " << fquiz.front();
	cout << "\nfquiz.back() : " << fquiz.back();
	cout << "\nfquiz.pop() : ";
	fquiz.pop();
	showsg(fquiz);
	return 0;
}

الإخراج:

الطابور fquiz هو : 10 20 30
fquiz.size() : 3
fquiz.front() : 10
fquiz.back() : 30
fquiz.pop() : 20 30