إضافة العناصر
جزء من قسم Logic & Flow في رحلة C++ على Coddy — الدرس 11 من 56.
الآن بعد أن عرفت كيفية إنشاء المتجهات (vectors)، دعنا نتعلم كيفية إضافة عناصر إليها بعد إنشائها. تُعد الطريقة push_back() هي أداتك الأساسية لزيادة حجم المتجه عن طريق إضافة عناصر جديدة إلى نهايته.
تأخذ الدالة push_back() وسيطًا واحدًا - القيمة التي تريد إضافتها - وتضيفها إلى نهاية الـ vector:
std::vector<int> numbers;
numbers.push_back(10);
numbers.push_back(20);
numbers.push_back(30);في هذا المثال، نبدأ بمتجه فارغ ونستخدم push_back() لإضافة ثلاثة أعداد صحيحة. بعد هذه العمليات، يحتوي المتجه الخاص بنا على العناصر [10, 20, 30] بهذا الترتيب.
تكمن روعة push_back() في أنها تتعامل مع كافة عمليات إدارة الذاكرة تلقائيًا. فعندما تضيف عناصر وتنفد المساحة في الـ vector، فإنها تقوم تلقائيًا بتخصيص المزيد من الذاكرة ونسخ العناصر الموجودة إلى الموقع الجديد. وهذا يجعل الـ vectors مريحة للغاية لبناء مجموعات من البيانات عندما لا تعرف الحجم النهائي مسبقًا.
التحدي
سهلقم بإنشاء برنامج يوضح إضافة عناصر إلى vector باستخدام طريقة push_back(). ستبدأ بـ vector فارغ وتقوم ببنائه ديناميكيًا عن طريق إضافة أرقام في تسلسل محدد.
سيتم توفير المدخلات التالية:
- عدد صحيح
nيمثل عدد الأرقام التي سيتم إضافتها إلى الـ vector - ثم
nمن الأعداد الصحيحة التي يجب إضافتها إلى الـ vector واحدًا تلو الآخر
يجب أن يقوم برنامجك بما يلي:
- إنشاء
std::vector<int>فارغ باسمnumbers - استخدام حلقة (loop) لقراءة كل من أرقام المدخلات الـ
n - لكل رقم، استخدم
push_back()لإضافته إلى نهاية الـ vector - بعد إضافة كل رقم، قم بطباعة الحجم الحالي للـ vector والرقم الذي تمت إضافته للتو
- أخيرًا، قم بطباعة جميع العناصر الموجودة في الـ vector في سطر واحد، مفصولة بمسافات
استخدم تنسيق المخرجات التالي تمامًا:
Added [number], size is now [current size]
Added [number], size is now [current size]
...
Final vector: [num1] [num2] [num3] ...استخدم طريقة .size() للحصول على العدد الحالي للعناصر في الـ vector بعد كل إضافة. بالنسبة للمخرجات النهائية، استخدم عامل الأقواس المربعة [] للوصول إلى كل عنصر عن طريق الفهرس (index).
ورقة مرجعية
استخدم push_back() لإضافة عناصر إلى نهاية الـ vector:
std::vector<int> numbers;
numbers.push_back(10);
numbers.push_back(20);
numbers.push_back(30);تقوم الطريقة push_back() بإدارة الذاكرة تلقائيًا، وتوسيع الـ vector حسب الحاجة عند إضافة العناصر.
جرّب بنفسك
#include <iostream>
#include <vector>
using namespace std;
int main() {
// قراءة عدد العناصر المراد إضافتها
int n;
cin >> n;
// إنشاء متجه (vector) فارغ
vector<int> numbers;
// TODO: اكتب كودك هنا
// اقرأ n من الأرقام وأضفها إلى المتجه باستخدام push_back()
// اطبع المخرجات المطلوبة بعد كل عملية إضافة
// طباعة المتجه النهائي
cout << "Final vector: ";
// TODO: اطبع جميع العناصر مفصولة بمسافات
return 0;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المؤشرات والذاكرة
ما هو المؤشر؟معامل العنوان (Address-Of)معامل الوصول للقيمة (Dereference)المؤشرات الفارغة (Null Pointers)المؤشرات والمصفوفاتالذاكرة الديناميكية باستخدام 'new'تحرير الذاكرة باستخدام 'delete'مراجعة - تمارين على المؤشرات2المتجهات (المصفوفات الديناميكية)
مقدمة إلى std::vectorإنشاء Vectorإضافة العناصرالوصول إلى العناصرحجم الـ Vectorالتكرار باستخدام For Loopالـ Range-Based For Loopإزالة العناصرملخص - عمليات الـ Vector