مقدمة إلى مكتبة النماذج القياسية STL
مكتبة النماذج القياسية (STL) عبارة عن مجموعة قوية من الفئات والدوال في لغة C++ والتي توفر خوارزميات وحاويات ومكررات عامة وقابلة لإعادة الاستخدام. إنه مكون أساسي في برمجة C++ الحديثة ويوفر مجموعة كبيرة من الوظائف لتبسيط التعليمات البرمجية وتحسينها.
المكونات الرئيسية لمكتبة النماذج القياسية STL:
- الحاويات Containers:
الـContainers هي objects تقوم بتخزين مجموعات من الـobjects الأخرى. أنها توفر وسيلة لتنظيم ومعالجة البيانات بكفاءة. توفر STL العديد من فئات الحاويات، ولكل منها خصائصها الفريدة:
- Vector: مصفوفة ديناميكية تقوم بضبط حجمها تلقائيًا.
- List: قائمة مرتبطة بشكل مزدوج تسمح بالإدراج والحذف السريع في أي مكان في القائمة.
- Deque: قائمة انتظار ذات نهاية مزدوجة تدعم الإدراج والحذف السريع في كلا الطرفين.
- Set: مجموعة من العناصر الفريدة والمرتبة.
- Map: مجموعة من key-value pairs، حيث يكون كل مفتاح فريدًا.
- Stack: عبارة عن Container مع إمكانية الوصول إلى آخر ما يدخل هو أول ما يخرج (LIFO).
- Stack: عبارة عن Container مع إمكانية الوصول إلى أول ما يدخل هو أول ما يخرج (LIFO). - التكرارات Iterators:
التكرارات هي objects تسمح بالاجتياز عبر عناصر الـcontainer. تعمل كمؤشرات وتوفر طريقة موحدة للوصول إلى العناصر بغض النظر عن تطبيق الـcontainer الأساسية. هناك أنواع مختلفة من التكرارات:
- Input iterators: السماح بقراءة العناصر من الـcontainer.
- Output iterators: السماح بكتابة العناصر في الـcontainer.
- Forward iterators: دعم الاجتياز للأمام.
- Bidirectional iterators: تدعم الاجتياز ثنائي الاتجاه (للأمام والخلف).
- Random access iterators: دعم الوصول العشوائي إلى العناصر (على سبيل المثال، الوصول إلى العناصر عن طريق index). - الخوارزميات Algorithms:
الخوارزميات هي وظائف تعمل على الـcontainers من خلال التكرارات. يقومون بعمليات مختلفة مثل البحث عن العناصر الموجودة في الحاويات وفرزها وتعديلها ومعالجتها. توفر STL مجموعة واسعة من الخوارزميات للمهام الشائعة، بما في ذلك:
- Sorting: فرز العناصر في container.
- Searching: البحث عن العناصر الموجودة في الـcontainer.
- Transforming: تعديل العناصر في الـcontainer بناءً على معايير معينة.
- Copying: نسخ العناصر بين الـcontainers.
- الدمج: دمج عناصر من containers متعددة في container واحدة مرتبة.
والكثير بعد من الخوارزميات ...
أنواع الحاويات Container
- Simple
– Pair - Sequence
– Array
– Vector
– Deque
– List
– Forward list - Associative
– Map
– Multimap
– Set
– Multiset - Unordered
– Unordered set
– Unordered multiset
– Unordered map
– Unordered multimap - Adapter
– Stack
– Queue
– Priority queue