3- تعلم كيفية توظيف هياكل البيانات في حل المشاكل، وتنفيذها بكفاءة عالية باستخدام لغة C++.
هنتعلم ايه جديد؟
- أول مرة هنتكلم عن الـ C++ STL وهي اختصار لـ Standard Template Library ودي من أهم مميزات لغة الـ C++ عن لغة الـ C، والمكتبة دي بتوفرلنا 4 حاجات مختلفة:
1- Containers.
2- Iterators.
3- Algorithms.
4- Functions.
- اتعرضنا قبل كدا لأجزاء كتيرة من STL منهم containers زي pair وvector ومنهم algorithms زي sort وreverse وmax_element وcount وfind وerase وغيرهم كتير.
- ومهم جدا تكون عارف إن C++ STL من أحد أسباب قوة الـ C++ وشيوع إستخدامها في مسابقات البرمجة.
- هنتعرض لمعظم أجزاء C++ STL خلال التدريب بإذن الله.
- الصورة دي بتوضح تصنيف الـ Containers في C++ STL:
- هنبدأ نتعرف على الـ Containers كلها بالتدريج والأسبوع دا هنتعرض لثلاثة من الـ linear containers وهما:
1- Stack
2- Queue
3- Deque
- يهمك جدا في أي Data Structure تتعلمها لأول مرة تعرف عنها الآتي:
1- طريقة عملها أو وظيفتها أو المشكلة اللي هي بتحلها.
2- تعرف أهم الـ Functions اللي بتوفرها الـ Data Structure دي والـ Operations اللي ممكن تتعمل عليها.
3- تعرف الـ Complexity الخاصة بكل Function وOperation.
4- يهمك برضو تعرف الـ Implementation بتاعها، ودا هيساعدك تفهم أكتر الـ Complexity ولكن الـ implementation نفسه مش دايما هيفيدك في مسابقات البرمجة لإنها بالفعل implemented في الـ C++ STL، بس هيفيدك في حياتك العملية أكتر وممكن تحتاج في يوم تكتب الـ Data Structure دي بايدك لغرض معين أو بسبب إنها مش موجودة أصلا في مكتبات لغة البرمجة زي لغة الـ C.
- مش مطلوب منك تكتب الـ implementation خالص خلال التدريب، ولكن هتستخدم كل حاجة جاهزة من C++ STL، وتركيزنا هيكون على ازاي نوظف كل Data Structure هنتعلمها في حل المشاكل المختلفة.