الخوارزميات غير المعدِّلة: find وcount وall_of
ابحث في محتويات الحاويات واختبرها دون تغييرها.
الخوارزميات غير المعدِّلة: find وcount وall_of درس مجاني في C++ Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C++ Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C++ Academy 4 دروس في المجموع.
العمليات للقراءة فقط
تفحص الخوارزميات غير المعدِّلة نطاقًا دون تغييره. وهي موجودة في <algorithm>.
std::find
حدّدوا أول عنصر يساوي قيمة معينة. وتُرجع الخوارزمية مكرّرًا، أو end إذا لم تعثر على العنصر.
#include <algorithm>
std::vector<int> v = {3, 1, 4, 1, 5};
auto it = std::find(v.begin(), v.end(), 4);
if (it != v.end()) std::cout << "found at " << (it - v.begin());std::find_if
اعثروا على أول عنصر يطابق مسندًا.
auto it = std::find_if(v.begin(), v.end(),
[](int x) { return x > 3; });std::find_if_not
هي عكس find_if، إذ تبحث عن أول عنصر لا يطابق المسند.
std::count وstd::count_if
عدّوا التكرارات أو العناصر المطابقة. وتُرجعان ptrdiff_t.
int n = std::count(v.begin(), v.end(), 1); // count of 1s
int m = std::count_if(v.begin(), v.end(),
[](int x) { return x > 2; });std::all_of وstd::any_of وstd::none_of
اختبروا مسندًا على النطاق:
all_of— تطابق جميع العناصرany_of— يطابق عنصر واحد على الأقلnone_of— لا يطابق أي عنصر
bool allPositive = std::all_of(v.begin(), v.end(),
[](int x) { return x > 0; });
bool anyEven = std::any_of(v.begin(), v.end(),
[](int x) { return x % 2 == 0; });std::equal
قارنوا نطاقين عنصرًا بعنصر.
std::vector<int> a = {1, 2, 3};
std::vector<int> b = {1, 2, 3};
bool same = std::equal(a.begin(), a.end(), b.begin());std::mismatch
اعثروا على أول زوج من العناصر المختلفة بين نطاقين. وتُرجع الخوارزمية زوجًا من المكرّرات.
std::adjacent_find
اعثروا على أول زوج من العناصر المتجاورة والمتساوية، أو أول زوج يطابق مسندًا.
std::vector<int> v = {1, 2, 2, 3};
auto it = std::adjacent_find(v.begin(), v.end());
std::cout << *it; // 2std::min_element وstd::max_element
أرجِعوا مكرّرًا إلى أصغر عنصر أو أكبر عنصر. ومرّروا مسندًا للمقارنة بطريقة مختلفة.
auto it = std::max_element(v.begin(), v.end());
std::cout << *it;std::for_each
استدعوا دالة لكل عنصر. وتُتجاهل قيمة الإرجاع الخاصة بالدالة.
std::for_each(v.begin(), v.end(),
[](int x) { std::cout << x << " "; });إصدارات النطاقات (C++20)
أضافت C++20 نسخًا تتعامل مع النطاقات وتقبل نطاقًا واحدًا بدلًا من مكرّرين. وتوفر صياغة أوضح.
#include <ranges>
auto it = std::ranges::find(v, 4);
bool ok = std::ranges::all_of(v, [](int x) { return x > 0; });تحقق سريع
أي خوارزمية تُرجع true فقط إذا طابق كل عنصر مسندًا؟
مراجعة
تفحص الخوارزميات غير المعدِّلة النطاقات دون تغييرها، ومنها: find وcount وall_of/any_of/none_of وmin_element وequal. وتوفر نطاقات C++20 صياغة أوضح للتعامل مع نطاق واحد.
تعلم C++ مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 51
- الدروس
- 203
الأسئلة الشائعة
هل درس «الخوارزميات غير المعدِّلة: find وcount وall_of» مجاني؟
نعم — نص درس «الخوارزميات غير المعدِّلة: find وcount وall_of» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C++ Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C++ Academy 4 دروس في المجموع.
ماذا ستتعلم في «الخوارزميات غير المعدِّلة: find وcount وall_of»؟
ابحث في محتويات الحاويات واختبرها دون تغييرها. تتمرن على C++ Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C++ Academy؟
لا تُشترط خبرة سابقة. C++ Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «الخوارزميات غير المعدِّلة: find وcount وall_of»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C++ Academy هذا؟
نعم. كل درس في C++ Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الخوارزميات غير المعدِّلة: find وcount وall_of
- الخوارزميات المعدِّلة: transform وcopy_if وreplace
- الفرز والتقسيم: sort وstable_partition
- الخوارزميات الرقمية: accumulate وreduce وtransform_reduce