إنشاء مجموعة وإضافة عناصر
جزء من قسم 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); // ولا هذا أيضاًبعد كل عمليات الإدخال هذه، ستحتوي مجموعتك (set) على ثلاثة عناصر فريدة فقط: 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) تحافظ تلقائياً على التفرد من خلال رفض القيم المكررة، وهي ميزتها الأساسية لتخزين مجموعات من العناصر الفريدة.
ورقة مرجعية
لإنشاء مجموعة (set) وإضافة عناصر، استخدم .insert():
std::set<int> numbers;
numbers.insert(5);
numbers.insert(2);
numbers.insert(8);ترفض المجموعات (Sets) التكرارات تلقائياً - إدراج نفس القيمة عدة مرات يحتفظ بنسخة واحدة فقط:
numbers.insert(5); // لن يضيف هذا رقماً 5 آخر
numbers.insert(5); // ولا هذا أيضاًاستخدم .size() للحصول على عدد العناصر الفريدة في المجموعة.
جرّب بنفسك
#include <iostream>
#include <set>
using namespace std;
int main() {
// قراءة عدد الأعداد الصحيحة المراد إدخالها
int n;
cin >> n;
// إنشاء مجموعة فارغة
set<int> mySet;
// TODO: اكتب كودك هنا
// استخدم حلقة لقراءة 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إنشاء مجموعة وإضافة عناصرالتحقق من وجود العناصرإزالة العناصرالتكرار عبر المجموعةملخص - أرقام فريدة