Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

إنشاء مجموعة وإضافة عناصر

جزء من قسم 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) مفيدة جدًا للحفاظ على مجموعات من البيانات الفريدة.

challenge icon

التحدي

سهل

قم بإنشاء برنامج يوضح ميزة العناصر الفريدة في std::set عن طريق إضافة عدة أعداد صحيحة إلى مجموعة (set)، بما في ذلك القيم المكررة، ثم عرض الحجم النهائي لإثبات أن التكرارات يتم تجاهلها تلقائياً.

سيتم توفير المدخلات التالية:

  • عدد صحيح n يمثل عدد الأعداد الصحيحة المراد إدخالها
  • ثم n من الأعداد الصحيحة ليتم إدخالها في المجموعة

يجب أن يقوم برنامجك بما يلي:

  1. إنشاء std::set<int> فارغة
  2. قراءة عدد الأعداد الصحيحة المراد إدخالها
  3. استخدام حلقة (loop) لقراءة كل عدد صحيح وإدخاله في المجموعة باستخدام طريقة .insert()
  4. بعد كل عمليات الإدخال، اطبع الحجم النهائي للمجموعة باستخدام طريقة .size()
  5. اطبع رسالة توضح عدد محاولات التكرار التي تم تجاهلها

استخدم تنسيق المخرجات الدقيق التالي:

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;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow