إعلان
دورة تطوير التطبيقات باستخدام لغة JavaScript في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp. تعلم الآن
دورة تطوير واجهات المستخدم في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية. تعلم الآن
تطوير تطبيقات باستخدام لغة بايثون في هذه الدورة ستتعلم أساسيات البرمجة بلغة بايثون وصولاً إلى التعامل مع أشهر أطر العمل (Flask و Django) و ستتعلم كيف تبني متجر إلكتروني يمكن للمستخدمين البيع و الشراء من خلاله. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة PHP في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل. تعلم الآن
دورة تطوير تطبيقات الويب باستخدام لغة Ruby في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O. تعلم الآن
دورة علوم الحاسوب هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب. تعلم الآن

    C++ الكلاس deque

    تعريف الكلاس deque

    يستخدم لإنشاء كائن يمثل حاوية تخزن العناصر التي نضيفها فيها بشكل متسلسل مع إعطاء كل عنصر منهم رقم Index مما يجعلك قادر على الوصول إلى جميع عناصرها و إضافة عناصر جديدة في أي مكان فيها, و يميز هذه الحاوية بأنك قادر على التعامل مع العناصر الموجودة على أطرافها بشكل مباشر كالتالي.



    لاستخدام الكلاس deque - أي حتى تتمكن من إنشاء كائنات منه - يجب تضمين الملف #include<queue> لأنه موجود فيه.


    بناء الكلاس

    template < class T, class Alloc = allocator<T> >
    class deque
    	

    إذاً عند إنشاء كائن من الكلاس deque يجب أن نمرر له نوع البيانات الذي نريد تخزينه فيه مكان الباراميتر T.

    دوال الكلاس deque

    الجدول التالي يحتوي على دوال الكلاس deque التي تستخدم للحصول على عداد يتيح المرور على عناصره.

    الدالة مع تعريفها
    iterator begin() ترجع كائن iterator يشير لمكان أول عنصر في الجهة اليسرى في الكائن الذي قام باستدعائها.
    إذا كنا ننوي استخدام الدالة begin() بداخل حلقة فإننا نستخدم معها الدالة end() من أجل البدء من أول عنصر في الجهة اليسرى و الوقوف عند آخر عنصر في الجهة اليمنى.
    iterator end() ترجع كائن iterator يشير لمكان آخر عنصر بالنسبة للجهة اليسرى في الكائن الذي قام باستدعائها.
    إذا كنا ننوي استخدام الدالة begin() بداخل حلقة فإننا نستخدم معها الدالة end() من أجل البدء من أول عنصر في الجهة اليسرى و الوقوف عند آخر عنصر في الجهة اليمنى.
    iterator rbegin() ترجع كائن iterator يشير لمكان أول عنصر في الجهة اليمنى في الكائن الذي قام باستدعائها.
    إذا كنا ننوي استخدام الدالة rbegin() بداخل حلقة فإننا نستخدم معها الدالة rend() من أجل البدء من أول عنصر في الجهة اليمنى و الوقوف عند آخر عنصر في الجهة اليسرى.
    iterator rend() ترجع كائن iterator يشير لمكان آخر عنصر بالنسبة للجهة اليمنى في الكائن الذي قام باستدعائها.
    إذا كنا ننوي استخدام الدالة begin() بداخل حلقة فإننا نستخدم معها الدالة end() من أجل البدء من أول عنصر في الجهة اليمنى و الوقوف عند آخر عنصر في الجهة اليسرى.

    الجدول التالي يحتوي على دوال الكلاس deque التي تستخدم للحصول على عدد عناصره.

    الدالة مع تعريفها
    bool empty() تستخدم لمعرفة ما إن كان الكائن الذي قام باستدعائها فارغاً أم لا.
    ترجع false في حال كان يوجد فيه عنصر أو أكثر, و ترجع true إن لم يكن كذلك.
    size_t size() تستخدم للحصول على عدد العناصر الموجودة في الكائن الذي قام باستدعائها.
    size_t max_size() تستخدم للحصول على أكبر عدد عناصر يمكن تخزينها في الكائن الذي قام باستدعائها.
    void resize(size_type n) تستخدم لحجز مساحة للعناصر التي تنوي تخزينها لاحقاً في الكائن الذي قام باستدعائها.
    عند تمرير قيمة للبارميتر n يجب أن لا تكون أصغر من عدد العناصر الموجودة في الكائن, لأنك إذا فعلت ذلك سيتم حذف العناصر التي لم يعد الكائن قادر على تخزينها.
    كما أنها ترمي الإستثناء bad_alloc في حال قمت بتمرير قيمة أكبر من عدد العناصر الأقصى التي يمكن تخزينها في الكائن.

    معلومة: هذه الدالة قد تكون مفيدة في حال أردت حجز مساحة أوليّة للعناصر قبل البدء بإضافتهم بدل جعل المترجم يفعل ذلك كلما أضفت عنصر جديد.
    هذه المعلومة غير مذكورة في المرجع الرسمي للغة C++ لذا قد تكون غير دقيقة.
    void shrink_to_fit() تستخدم للتخلي عن أي مساحة زيادة مخصصة في الذاكرة للكائن الذي قام باستدعائها.

    الجدول التالي يحتوي على دوال الكلاس deque التي تستخدم للوصول لقيم عناصره.

    الدالة مع تعريفها
    T at(size_t n) تستخدم للوصول لقيمة عنصر محدد في الكائن الذي قام باستدعائها سواء لتغييرها أو للحصول عليها.
    مكان الباراميتر n نمرر لها رقم يمثل index العنصر الذي نريد الوصول إليه.
    ترمي الإستثناء out_of_range في حال كانت قيمة n أصغر من 0 أو أكبر من عدد العناصر الموجودة.

    معلومة: يمكنك استخدام العامل [] للوصول للعنصر و لكن عليك معرفة أن استخدام هذا العامل لا يرمي إستثناء في حال تمرير index غير موجود في الكائن.
    T front() تستخدم للوصول لقيمة أول عنصر موجود في الجهة اليسرى في الكائن الذي قام باستدعائها سواء لتغييرها أو للحصول عليها.
    قد تسبب مشكلة في حال كان الكائن لا يملك أي عنصر, لذلك يفضل التأكد من أن الكائن غير فارغ باستخدام الدالة empty() قبل استخدامها.
    T back() تستخدم للوصول لقيمة أول عنصر موجود في الجهة اليمنى في الكائن الذي قام باستدعائها سواء لتغييرها أو للحصول عليها.
    قد تسبب مشكلة في حال كان الكائن لا يملك أي عنصر, لذلك يفضل التأكد من أن الكائن غير فارغ باستخدام الدالة empty() قبل استخدامها.
    T* data() ترجع مؤشر لقيمة أول عنصر موجود في الجهة اليسرى في الكائن الذي قام باستدعائها.

    الجدول التالي يحتوي على دوال الكلاس deque التي تستخدم للتحكم بعناصره.

    الدالة مع تعريفها
    void assign(size_t n, const T& val) تستخدم لإضافة عدة عناصر في الكائن الذي قام باستدعائها و هي تحذف أي عناصر أخرى موجودة فيه في حال لم يكن فارغاً.
    مكان الباراميتر n نمرر عدد العناصر التي نريد إضافتها في الكائن الذي قام باستدعائها.
    مكان الباراميتر val نمرر القيمة التي نريد وضعها للعناصر التي سيتم إضافتها في الكائن الذي قام باستدعائها.
    void push_back(T& val) تستخدم لإضافة عنصر جديد في آخر الكائن الذي قام باستدعائها, أي لإضافته في الجهة اليمنى.
    مكان الباراميتر val نمرر العنصر الذي نريد إضافته.
    void emplace_back(T& val) تستخدم لإضافة عنصر جديد في آخر الكائن الذي قام باستدعائها تماماً كالدالة push_back().
    مكان الباراميتر val نمرر العنصر الذي نريد إضافته.
    void push_front(T& val) تستخدم لإضافة عنصر جديد في أول الكائن الذي قام باستدعائها, أي لإضافته في الجهة اليسرى.
    مكان الباراميتر val نمرر العنصر الذي نريد إضافته.
    void emplace_front(T& val) تستخدم لإضافة عنصر جديد في أول الكائن الذي قام باستدعائها تماماً كالدالة push_front().
    مكان الباراميتر val نمرر العنصر الذي نريد إضافته.
    void pop_back() تستخدم لحذف آخر عنصر موجود في الكائن الذي قام باستدعائها, أي لحذف أول عنصر من الجهة اليمنى.
    void pop_front() تستخدم لحذف أول عنصر موجود في الكائن الذي قام باستدعائها, أي لحذف أول عنصر من الجهة اليسرى.
    iterator insert(const_iterator position, T& val) تستخدم لإضافة عنصر جديد في مكان محدد - أي عند رقم Index محدد - في الكائن الذي قام باستدعائها.
    مكان الباراميتر position نمرر كائن أصله من Iterator يشير لعنوان المكان الذي سيتم إضافة العنصر عنده في الذاكرة.
    مكان الباراميتر val نمرر القيمة التي نريد وضعها في العنصر الذي سيتم إضافته.
    كما أنها ترجع كائن أصله من Iterator يمثل عنوان العنصر الذي تم إضافته.
    void clear() تستخدم لحذف جميع العناصر الموجودة في الكائن الذي قام باستدعائها.
    iterator erase(const_iterator position) تستخدم لحذف عنصر محدد من الكائن الذي قام باستدعائها.
    مكان الباراميتر position نمرر كائن أصله من Iterator يشير لعنوان العنصر الذي سيتم حذفه.
    iterator erase(const_iterator first, const_iterator last) تستخدم لحذف مجموعة عناصر من الكائن الذي قام باستدعائها.
    مكان الباراميتر first نمرر كائن أصله من const_iterator يشير لعنوان العنصر الذي سيتم بدء الحذف من عنده.
    مكان الباراميتر last نمرر كائن أصله من const_iterator يشير لعنوان العنصر الذي سيتم إيقاف الحذف عنده.
    void swap(deque& anotherDeque) تستخدم لتبديل قيم عناصر الكائن الذي قام باستدعائها بقيم عناصر الكائن الذي نمرره لها.
    مكان الباراميتر anotherDeque نمرر لها كائن من الكلاس deque يملك نفس نوع عناصر الكائن الذي قام باستدعائها.

    أمثلة شاملة حول التعامل مع الكلاس deque

    في كل مثال موضوع قمنا باستخدام دوال جديدة حتى تعرف كيف تستخدم جميع الدوال التي ذكرناها في الجدول.


    في المثال التالي قمنا بتعريف كائن من list مع تحديد أنه يمكن أن يحتوي على عناصر نوعها int.
    بعدها قمنا بإضافة 7 قيم فيه بطرق مختلفة و من ثم عرض جميع قيمه باستخدام حلقة.

    ملاحظة: قمنا باستخدام الدالة assign() لإضافة مجموعة من العناصر فيه دفعة واحدة, الدالة push_front() لإضافة عنصر واحد في بدايته و الدالة emplace_front() لإضافة عنصر واحد في بدايته أيضاً, الدالة push_back() لإضافة عنصر واحد في آخره و الدالة emplace_back() لإضافة عنصر واحد في آخره أيضاً.

    المثال الأول

    main.cpp
    #include <iostream>
    #include <queue>
    
    using namespace std;
    
    int main()
    {
    	// int يمكنه أن يحتوي على قيم نوعها deque هنا قمنا بتعريف كائن من الكلاس
        deque<int> myDeque;
    	
    	// assign() باستخدام الدالة myDeque هنا قمنا بإضافة 3 عناصر أولية في الكائن
    	// {3, 4, 5} أصبح فيه القيم التالية myDeque إذاً الكائن
    	myDeque.assign({3, 4, 5});
    
    	// push_front() قيمته العدد 2 باستخدام الدالة myDeque هنا قمنا بإضافة عنصر في أول الكائن
    	// {2, 3, 4, 5} أصبح فيه القيم التالية myDeque إذاً الكائن
    	myDeque.push_front(2);
    	
    	// emplace_front() قيمته العدد 1 باستخدام الدالة myDeque هنا قمنا بإضافة عنصر في أول الكائن
    	// {1, 2, 3, 4, 5} أصبح فيه القيم التالية myDeque إذاً الكائن
    	myDeque.emplace_front(1);
    	
    	// push_back() قيمته العدد 6 باستخدام الدالة myDeque هنا قمنا بإضافة عنصر في آخر الكائن
    	// {1, 2, 3, 4, 5, 6} أصبح فيه القيم التالية myDeque إذاً الكائن
    	myDeque.push_back(6);
    	
    	// emplace_back() قيمته العدد 7 باستخدام الدالة myDeque هنا قمنا بإضافة عنصر في آخر الكائن
    	// {1, 2, 3, 4, 5, 6, 7} أصبح فيه القيم التالية myDeque إذاً الكائن
    	myDeque.emplace_back(7);
    	
        cout << "Deque values = ";
    
    	// myDeque هنا قمنا بإنشاء حلقة تقوم في كل دورة بطباعة قيمة عنصر جديد من العناصر الموجودة في الكائن
        for(size_t i=0; i<myDeque.size(); i++)
        {
            cout << myDeque[i] << " ";
        }
    
        return 0;
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Deque values = 1 2 3 4 5 6 7
    		


    في المثال التالي قمنا بتعريف كائن من deque أدخلنا فيه 5 عناصر نصية.
    بعدها قمنا بإضافة 5 قيم فيه و من ثم عرض عدد جميع عناصره, عدد جميع العناصر التي يمكن إضافتها فيه, بالإضافة لأول و آخر قيمة موجودة فيه.

    ملاحظة: قمنا باستخدام الدالة size() لمعرفة عدد العناصر التي تم إضافتها, الدالة max_size() لمعرفة أكبر عدد عناصر يمكن إضافتها فيه, الدالة empty() لمعرفة ما إن كانت المصفوفة فارغة أم لا, الدالة front() للحصول على قيمة أول عنصر و الدالة back() للحصول على قيمة آخر عنصر.

    المثال الثاني

    main.cpp
    #include <iostream>
    #include <queue>
    
    using namespace std;
    
    int main()
    {
    	// string يمكنه أن يحتوي على 5 قيم نوعها deque هنا قمنا بتعريف كائن من الكلاس
        deque<string> myDeque;
    
    	// push_back() باستخدام الدالة myDeque هنا قمنا بإضافة 5 عناصر في الكائن
    	myDeque.push_back("One");
    	myDeque.push_back("Two");
    	myDeque.push_back("Three");
    	myDeque.push_back("Four");
    	myDeque.push_back("Five");
    
    	// size() باستخدام الدالة myDeque هنا قمنا بطباعة عدد عناصر الكائن
        cout << "Deque size = " << myDeque.size() << endl;
    
    	// max_size() باستخدام الدالة myDeque هنا قمنا بطباعة عدد العناصر الأقصى التي يمكن تخزينها في الكائن
        cout << "Deque max size = " << myDeque.max_size() << endl;
    
    	// و إن لم يكن فارغاً سيتم طباعة أول و آخر قيمة فيه empty() باستخدام الدالة myDeque هنا قمنا بالتشييك على عدد عناصر الكائن
    	if (!myDeque.empty())
    	{
    		cout << "Deque first element value = " << myDeque.front() << endl;
    		cout << "Deque last element value = " << myDeque.back();
    	}
    	
        return 0;
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Deque size = 5
    Deque max size = 576460752303423487
    Deque first element value = One
    Deque last element value = Five
    		


    في المثال التالي قمنا بتعريف كائن من deque مخصص لتخزين قيم نوعها int مع إضافة 9 قيم فيه عند تعريفه.
    بعدها قمنا بحذف عدة عناصر منه بطرق مختلفة و من ثم طباعة قيم العناصر المتبقية.

    ملاحظة: قمنا باستخدام الدالة pop_back() لحذف آخر عنصر من الكائن, الدالة erase() لحذف عنصر واحد, الدالة erase() مرة ثانية لحذف أكثر من عنصر في وقت واحد و الدالة begin() للحصول على عدّاد يمكن من خلاله تحديد مكان العناصر التي سيتم حذفها.

    المثال الثالث

    main.cpp
    #include <iostream>
    #include <queue>
    
    using namespace std;
    
    int main()
    {
    	// بالإضافة إلى أننا قمنا بإضافة 9 قيم فيه int يمكنه أن يحتوي على عناصر نوعها deque هنا قمنا بتعريف كائن من الكلاس
        deque<int> myDeque = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    	
    	// myDeque هنا قمنا بحذف آخر عنصر موجود في الكائن
    	// {1, 2, 3, 4, 5, 6, 7, 8} أصبح فيه القيم التالية myDeque إذاً الكائن
    	myDeque.pop_back();
    	
    	// myDeque يساوي 2 في الكائن index هنا قمنا بحذف العنصر الذي يملك
    	// {1, 2, 4, 5, 6, 7, 8} أصبح فيه القيم التالية myDeque إذاً الكائن
    	myDeque.erase(myDeque.begin() + 2);
    	
    	// يساوي 1 وصولاً إلى index إبتداءاً من العنصر الذي يملك myDeque هنا قمنا بحذف العناصر الموجودة في الكائن
    	// {1, 6, 7, 8} أصبح فيه القيم التالية myDeque يساوي 4. و بالتالي الكائن index ما قبل العنصر الذي يملك
    	myDeque.erase(myDeque.begin() + 1, myDeque.begin() + 4);
    	
        cout << "Deque values = ";
    
    	// myDeque هنا قمنا بإنشاء حلقة تقوم في كل دورة بطباعة قيمة عنصر جديد من العناصر الموجودة في الكائن
        for(size_t i=0; i<myDeque.size(); i++)
        {
            cout << myDeque[i] << " ";
        }
    
        return 0;
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Deque values = 1 6 7 8
    		


    في المثال التالي قمنا بتعريف كائن من deque مخصص لتخزين قيم نوعها int مع إضافة 5 قيم فيه عند تعريفه.
    بعدها قمنا بعرض جميع عناصرها مرتين, مرة من أول عنصر لآخر عنصر, و مرة من آخر عنصر لأول عنصر.

    ملاحظة: عند البدء من أول عنصر لآخر عنصر, قمنا باستخدام الدالة begin() للحصول على عدّاد يمكن من خلاله البدئ من العنصر الأول و الدالة end() للحصول على قيمة العدّاد التي من خلالها نعرف أننا وصلنا لآخر عنصر.
    و عند البدء من آخر عنصر لأول عنصر, قمنا باستخدام الدالة rbegin() للحصول على عدّاد يمكن من خلاله البدئ من آخر عنصر و الدالة rend() للحصول على قيمة العدّاد التي من خلالها نعرف أننا وصلنا لأول عنصر بدون الحاجة لتغيير شكل الحلقة التي استخدمناها في المرة الأولى.

    المثال الرابع

    main.cpp
    #include <iostream>
    #include <queue>
    
    using namespace std;
    
    int main()
    {
    	// بالإضافة إلى أننا قمنا بإضافة 5 قيم فيه int يمكنه أن يحتوي على عناصر نوعها deque هنا قمنا بتعريف كائن من الكلاس
        deque<int> myDeque = {1, 2, 3, 4, 5};
    	
        cout << "Deque values from begin to end = ";
    
    	// إبتداءاً من أول عنصر وصولاً لآخر عنصر فيه myDeque هنا قمنا بإنشاء حلقة تقوم في كل دورة بطباعة قيمة عنصر جديد من العناصر الموجودة في الكائن
        for(auto it=myDeque.begin(); it<myDeque.end(); it++)
        {
            cout << *it << " ";
        }
    	
        cout << "\nDeque values from end to begin = ";
    
    	// إبتداءاً من آخر عنصر وصولاً لأول عنصر فيه myDeque هنا قمنا بإنشاء حلقة تقوم في كل دورة بطباعة قيمة عنصر جديد من العناصر الموجودة في الكائن
        for(auto it=myDeque.rbegin(); it<myDeque.rend(); it++)
        {
            cout << *it << " ";
        }
    
        return 0;
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Deque values from begin to end = 1 2 3 4 5
    Deque values from end to begin = 5 4 3 2 1
    		


    في المثال التالي قمنا بتعريف كائن من deque مخصص لتخزين قيم نوعها int مع إضافة 5 قيم فيه عند تعريفه.
    بعدها قمنا بتغيير قيم العناصر الموجودة على أطرافه, أي قيمة العنصر الأول و الأخير.
    في الأخير قمنا بعرض جميع قيمه باستخدام حلقة.

    ملاحظة: قمنا باستخدام الدالة front() لتغيير قيمة العنصر الأول و الدالة back() لتغيير قيمة العنصر الأخير.

    المثال الخامس

    main.cpp
    #include <iostream>
    #include <queue>
    
    using namespace std;
    
    int main()
    {
    	// بالإضافة إلى أننا قمنا بإضافة 5 قيم فيه int يمكنه أن يحتوي على عناصر نوعها deque هنا قمنا بتعريف كائن من الكلاس
        deque<int> myDeque = {1, 2, 3, 4, 5};
    	
    	// إلى 11 myDeque هنا قمنا بتغيير قيمة العنصر الأول في الكائن
    	myDeque.front() = 11;
    	
    	// إلى 55 myDeque هنا قمنا بتغيير قيمة العنصر الأخير في الكائن
    	myDeque.back() = 55;
    	
        cout << "Deque values = ";
    
    	// myDeque هنا قمنا بإنشاء حلقة تقوم في كل دورة بطباعة قيمة عنصر جديد من العناصر الموجودة في الكائن
        for(size_t i=0; i<myDeque.size(); i++)
        {
            cout << myDeque[i] << " ";
        }
    	
        return 0;
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Deque values = 11 2 3 4 55
    		


    في المثال التالي قمنا بتعريف كائن من deque مع تحديد أنه يمكن أن يحتوي على عناصر نوعها int.
    بعدها قمنا بإضافة 5 قيم فيه وراء بعضها.
    بعدها قمنا بإضافة قيمة في مكان محدد فيه.
    في الأخير قمنا بعرض جميع قيمه باستخدام حلقة.

    ملاحظة: قمنا باستخدام الدالة insert() لإضافة القيمة في مكان محدد في الكائن.

    المثال السادس

    main.cpp
    #include <iostream>
    #include <queue>
    
    using namespace std;
    
    int main()
    {
    	// بالإضافة إلى أننا قمنا بإضافة 5 قيم فيه int يمكنه أن يحتوي على عناصر نوعها deque هنا قمنا بتعريف كائن من الكلاس
        deque<int> myDeque = {1, 2, 3, 4, 5};
    	
    	// myDeque رقم 2 بالنسبة للكائن index هنا قمنا بإضافة القيمة 8 في الـ
    	// {1, 2, 8, 3, 4, 5} أصبح فيه القيم التالية myDeque إذاً الكائن
    	myDeque.insert(myDeque.begin() + 2, 8); 
    	
        cout << "Deque values = ";
    
    	// myDeque هنا قمنا بإنشاء حلقة تقوم في كل دورة بطباعة قيمة عنصر جديد من العناصر الموجودة في الكائن
        for(size_t i=0; i<myDeque.size(); i++)
        {
            cout << myDeque[i] << " ";
        }
    
        return 0;
    }
    		

    سنحصل على النتيجة التالية عند التشغيل.

    Deque values = 1 2 8 3 4 5
    		
    إعلان

    Eqla3Tech.com

    شروحات مكتوبة حول لغات البرمجة و تقنية المعلومات باللغة العربية مقدمة من إقلاع تك.

    لغة جافا لغة ++C قواعد البيانات نظام ويندوز نظام لينكس الشبكات تقنية المعلومات الأمن السيبراني

    الدورات

    أدوات مساعدة

    الأقسام

    دورات
    مقالات أسئلة مشاريع كتب