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

التحقق من وجود العناصر

جزء من قسم Logic & Flow في رحلة C++ على Coddy — الدرس 37 من 56.

عند العمل مع المجموعات (sets)، غالباً ما تحتاج إلى التحقق مما إذا كان عنصر معين موجوداً قبل إجراء العمليات عليه. توفر الطريقة .count() وسيلة بسيطة للتحقق مما إذا كان العنصر موجوداً في مجموعتك.

تماماً كما هو الحال مع الخرائط، فإن الطريقة .count() تُرجع القيمة 1 إذا كان العنصر موجوداً في المجموعة، و 0 إذا لم يكن موجوداً. وهذا يجعلها مثالية لعمليات التحقق الشرطية:

std::set<int> numbers = {10, 20, 30};

if (numbers.count(20)) {
    std::cout << "Found 20 in the set!" << std::endl;
} else {
    std::cout << "20 is not in the set" << std::endl;
}

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

challenge icon

التحدي

سهل

قم بإنشاء برنامج يوضح كيفية التحقق بأمان من وجود العناصر في std::set قبل إجراء العمليات عليها. سيختبر هذا التحدي فهمك لطريقة .count() للتحقق من العناصر.

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

  • عدد صحيح n يمثل عدد العناصر التي سيتم إضافتها في البداية إلى المجموعة (set)
  • ثم n من الأعداد الصحيحة ليتم إدراجها في المجموعة
  • عدد صحيح m يمثل عدد العناصر المراد البحث عنها
  • ثم m من الأعداد الصحيحة للتحقق من وجودها في المجموعة

يجب على برنامجك القيام بما يلي:

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

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

لكل نتيجة بحث:

Searching for [number]: Found

للعناصر التي لم يتم العثور عليها:

Searching for [number]: Not found

الملخص في النهاية:

Total found: [count] out of [total_searches]

استخدم numbers.count(searchValue) للتحقق مما إذا كان العنصر موجوداً في المجموعة. إذا أعادت القيمة 1، فإن العنصر موجود؛ وإذا أعادت 0، فإن العنصر غير موجود. احتفظ بعداد لتتبع عدد العناصر التي تم العثور عليها بنجاح خلال عمليات البحث.

ورقة مرجعية

استخدم .count() للتحقق مما إذا كان العنصر موجوداً في المجموعة (set). تُرجع القيمة 1 إذا كان العنصر موجوداً، و 0 إذا لم يكن موجوداً:

std::set<int> numbers = {10, 20, 30};

if (numbers.count(20)) {
    std::cout << "Found 20 in the set!" << std::endl;
} else {
    std::cout << "20 is not in the set" << std::endl;
}

هذه الطريقة أكثر أماناً من محاولة الوصول إلى العناصر مباشرة، وهي مثالية للفحوصات الشرطية والتحقق من صحة المدخلات.

جرّب بنفسك

#include <iostream>
#include <set>
using namespace std;

int main() {
    // قراءة عدد العناصر المراد إضافتها إلى المجموعة
    int n;
    cin >> n;
    
    // إنشاء مجموعة فارغة
    set<int> numbers;
    
    // قراءة وإدراج n من العناصر في المجموعة
    for (int i = 0; i < n; i++) {
        int element;
        cin >> element;
        numbers.insert(element);
    }
    
    // قراءة عدد العناصر المراد البحث عنها
    int m;
    cin >> m;
    
    int foundCount = 0;
    
    // TODO: اكتب كودك أدناه
    // لكل عنصر بحث:
    // 1. قراءة قيمة البحث
    // 2. استخدام numbers.count(searchValue) للتحقق مما إذا كان موجوداً
    // 3. طباعة الرسالة المناسبة
    // 4. تحديث foundCount إذا تم العثور على العنصر
    
    // طباعة الملخص
    cout << "Total found: " << foundCount << " out of " << m << endl;
    
    return 0;
}
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow