كيفية استخدام Range Based for Loop في C ++

Kyfyt Astkhdam Range Based For Loop Fy C



لغة البرمجة C ++ نطاق من أجل حلقة هي ميزة حديثة نسبيًا تم تقديمها لأول مرة في C ++ 11. الحلقات المستندة إلى النطاق تنفيذ حلقة فوق المدى. إنها تعمل مع أي حاوية بها مكرر ، بما في ذلك المصفوفات والمتجهات والخرائط والمجموعات وحتى الأنواع المعرفة من قبل المستخدم والتي تنفذ العمليات الضرورية.

بناء الجملة القائم على النطاق للحلقة

أ نطاق من أجل حلقة له صيغة واضحة جدا. وهي مكونة من متغير الحلقة والحاوية أو النطاق المراد تكرارها ونقطتين.







ل ( النطاق_الإعلان: تعبير_المدى ) بيان الحلقة



نطاق_الإعلان: إعلان النطاق هو إعلان عن متغير من نفس نوع عناصر تعبير مكون النطاق. لتحديد نوع المكونات تلقائيًا في ملف المدى_التعبير ، يتم استخدام الكلمة الأساسية التلقائية بشكل متكرر.



المدى_التعبير: كل تعبير يمثل قائمة من العناصر هو المدى_التعبير .





بيان الحلقة: يتكون جسم حلقة for من عبارة واحدة أو أكثر يجب تكرارها حتى نهاية range_expression.

طرق لتنفيذ التكرار المستندة إلى النطاق

هناك ثلاث طرق يمكن استخدامها نطاق من أجل حلقة .



الطريقة الأولى: استخدام المصفوفات

نطاق من أجل حلقة يمكن تشغيلها باستخدام مصفوفات مثل هذه.

# تضمين
استخدام اسم للمحطة؛

انت مين ( ) {
int numArray [ ] = { 6 و 7 و 8 و 9 و 10 } ؛
ل ( int n: numArray ) {
كوت << ن << '' ؛
}
يعود 0 ؛
}

في الكود أعلاه ، تمت تهيئة مصفوفة أعداد صحيحة تسمى numArray. ثم تم طباعة عناصر numArray باستخدام ملف نطاق من أجل حلقة .

انتاج |

الطريقة الثانية: استخدام المتجهات

نطاق من أجل حلقة يمكن تشغيلها باستخدام ناقلات مثل هذا.

# تضمين
# تضمين <ناقل>
استخدام اسم للمحطة؛
انت مين ( )
{
كثافة العمليات س ؛
المتجه < int > في = { 1 و 2 و 3 و 4 و 5 } ؛
ل ( int x: v )
{
كوت << x << '' ؛
}
يعود 0 ؛
}

في الكود أعلاه ، دعا المتجه في تمت تهيئته. هنا ، تم طباعة عناصر المتجه v باستخدام a نطاق من أجل حلقة.

انتاج |

الطريقة الثالثة: إعلان المجموعة داخل الحلقة

نطاق من أجل حلقة يمكن أيضًا إعلانها داخل الحلقة. إنه يعمل بشكل مشابه لكيفية عمل المصفوفة أو المتجه الفعلي.

# تضمين

استخدام اسم للمحطة؛
انت مين ( ) {
ل ( int n: { 5 و 10 و خمسة عشر و عشرين و 25 } ) {
كوت << ن << '' ؛
}
يعود 0 ؛
}

في الكود أعلاه ، يتم التصريح عن المجموعة داخل الحلقة نفسها ثم طباعتها.

انتاج |

مزايا وعيوب النطاق المعتمد على الحلقة

نطاق من أجل حلقة له فوائد أكثر من التقليدية ل حلقات بعدة طرق ، خاصة عند العمل مع الحاويات. نظرًا لأن متغير الحلقة يتم تعريفه داخل الحلقة ويتم تحديد النطاق بوضوح ، فإنه يجعل الكود أقصر بكثير ويسهل فهمه. كما أنها أكثر أمانًا ، حيث لا داعي للقلق بشأن الأخطاء الفردية أو أخطاء الفهرسة الأخرى. هم أكثر قابلية للتكيف حيث يمكنهم استخدام أي حاوية ، بغض النظر عن نوعها أو حجمها. ال نطاق من أجل حلقة له العديد من الفوائد ، أحدها أنه يجعل كودنا أكثر وضوحًا وأسهل في الفهم.

الحلقات المستندة إلى النطاق لديك بعض القيود ، رغم ذلك. نظرًا لأن متغير الحلقة هو نسخة من العنصر أو مرجع له وليس العنصر الفعلي ، فلا يمكن استخدامه لتغيير عناصر الحاوية. نظرًا لتكرار النطاق الكامل باستمرار ، لا يمكننا تخطي أي عناصر أو تكرار جزء فقط من البيانات.

خاتمة

نطاق من أجل حلقة هي ميزة قوية ومتعددة الاستخدامات للغة البرمجة C ++. بالمقارنة مع الحلقات التقليدية ، فإنها توفر أمانًا ومرونة مُحسّنين جنبًا إلى جنب مع نهج واضح ومقروء للتكرار عبر الحاويات وتقليل الكود. نطاق من أجل حلقة أمر لا بد منه لتعلم المبرمجين C ++.