إنشاء مجموعة وإضافة عناصر
جزء من قسم Logic & Flow في رحلة C++ على Coddy — الدرس 36 من 56.
الآن بعد أن عرفت ما هي المجموعة (set)، دعنا نتعلم كيفية إنشاء واحدة وإضافة عناصر إليها. لإضافة عناصر إلى std::set، تستخدم الطريقة .insert().
إليك كيفية إنشاء مجموعة فارغة وإضافة عناصر:
std::set<int> numbers;
numbers.insert(5);
numbers.insert(2);
numbers.insert(8);أهم ميزة للمجموعات (sets) هي أنها ترفض التكرار تلقائياً. إذا حاولت إدراج نفس القيمة مرتين، فستبقى المجموعة دون تغيير:
numbers.insert(5); // لن يضيف هذا الرقم 5 مرة أخرى
numbers.insert(5); // ولا هذا أيضاًبعد كل عمليات الإدخال هذه، ستحتوي مجموعتك على ثلاثة عناصر فريدة فقط: 2، و5، و8 (مرتبة تلقائيًا). يتم ببساطة تجاهل المحاولات المكررة لإدخال الرقم 5، وهو بالضبط ما يجعل المجموعات (sets) مفيدة جدًا للحفاظ على مجموعات من البيانات الفريدة.
التحدي
سهلقم بإنشاء برنامج يوضح ميزة العناصر الفريدة في std::set عن طريق إضافة عدة أعداد صحيحة إلى مجموعة (set)، بما في ذلك القيم المكررة، ثم عرض الحجم النهائي لإثبات أن التكرارات يتم تجاهلها تلقائياً.
سيتم توفير المدخلات التالية:
- عدد صحيح
nيمثل عدد الأعداد الصحيحة المراد إدخالها - ثم
nمن الأعداد الصحيحة ليتم إدخالها في المجموعة
يجب أن يقوم برنامجك بما يلي:
- إنشاء
std::set<int>فارغة - قراءة عدد الأعداد الصحيحة المراد إدخالها
- استخدام حلقة (loop) لقراءة كل عدد صحيح وإدخاله في المجموعة باستخدام طريقة
.insert() - بعد كل عمليات الإدخال، اطبع الحجم النهائي للمجموعة باستخدام طريقة
.size() - اطبع رسالة توضح عدد محاولات التكرار التي تم تجاهلها
استخدم تنسيق المخرجات الدقيق التالي:
Set size: [final_size]
Duplicates ignored: [number_of_duplicates]يجب حساب عدد التكرارات التي تم تجاهلها كالفرق بين إجمالي عدد محاولات الإدخال والحجم النهائي للمجموعة. يوضح هذا أن المجموعات (sets) تحافظ تلقائياً على التفرد من خلال رفض القيم المكررة، وهي ميزتها الأساسية لتخزين مجموعات من العناصر الفريدة.
جرّب بنفسك
#include <iostream>
#include <set>
using namespace std;
int main() {
// قراءة عدد الأعداد الصحيحة المراد إدخالها
int n;
cin >> n;
// إنشاء مجموعة فارغة
set<int> mySet;
// مهام: اكتب الكود الخاص بك هنا
// استخدم حلقة لقراءة n من الأعداد الصحيحة وإدخالها في المجموعة
// حساب عدد القيم المكررة التي تم تجاهلها
// إخراج النتائج
cout << "Set size: " << mySet.size() << endl;
cout << "Duplicates ignored: " << /* حساب التكرارات */ << endl;
return 0;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المؤشرات والذاكرة
ما هو المؤشر؟معامل العنوان (Address-Of)معامل الوصول للقيمة (Dereference)المؤشرات الفارغة (Null Pointers)المؤشرات والمصفوفاتالذاكرة الديناميكية باستخدام 'new'تحرير الذاكرة باستخدام 'delete'مراجعة - تمارين على المؤشرات2المتجهات (المصفوفات الديناميكية)
مقدمة إلى std::vectorإنشاء Vectorإضافة العناصرالوصول إلى العناصرحجم الـ Vectorالتكرار باستخدام For Loopالـ Range-Based For Loopإزالة العناصرملخص - عمليات الـ Vector6المجموعات (عناصر فريدة)
مقدمة إلى std::setإنشاء مجموعة وإضافة عناصرالتحقق من وجود العناصرإزالة العناصرالتكرار عبر المجموعةملخص - أرقام فريدة