ما هي طريقة Lower_Bound () في سي ++

Ma Hy Tryqt Lower Bound Fy Sy



تقدم لغة البرمجة C ++ مجموعة واسعة من الوظائف والطرق المستخدمة على نطاق واسع. طريقة Lower_bound () هي إحدى هذه الوظائف التي تُستخدم للعثور على التواجد الأول لقيمة معينة في حاوية مرتبة. تتناول هذه المقالة بناء الجملة ، والمعلمات ، وقيم الإرجاع ، ومثال التعليمات البرمجية للأسلوب Lower_bound () في C ++.

ما هي طريقة Lower_bound ()؟

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

بناء الجملة







يحتوي أسلوب Lower_bound () في C ++ على نوعين مختلفين: صيغة افتراضية ومخصصة.



بناء الجملة الافتراضي

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



إلى الأمام المكرر low_bound ( المغير أولاً و المغير الأخير و مقدار ثابت تي & فال ) ؛

بناء الجملة المخصص

يأخذ بناء الجملة المخصص بالإضافة إلى ذلك وظيفة المسند الثنائية المعرفة من قبل المستخدم والتي تتبع ترتيب ضعيف صارم لترتيب العناصر.





إلى الأمام المكرر low_bound ( المغير أولاً و المغير الأخير و مقدار ثابت تي & فال و قارن شركات ) ؛

حدود

تأخذ طريقة Lower_bound () في C ++ ثلاث معاملات.

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



فال: يُشار إلى المعلمة الثالثة للطريقة Lower_bound () باسم 'val'. إنه يمثل قيمة الحد الأدنى الذي يجب العثور عليه ضمن النطاق المحدد. عندما يتم استدعاء طريقة Lower_bound () ، فإنها تبحث عن العنصر الأول ضمن النطاق المحدد للحاوية التي تكون أكبر من أو تساوي القيمة المحددة 'val'.

شركات: يمكن أن تقبل طريقة Lower_bound () أيضًا دالة مقارنة ثنائية كمعامل رابع لها. يأخذ وسيطتين: النوع المشار إليه بامتداد إلى الأمام ، والثاني هو فال . تقوم الدالة بعد ذلك بإرجاع قيمة منطقية بناءً على مقارنة بين الوسيطتين. لا تغير الوسيطة comp أيًا من وسيطاتها ويمكن أن تكون مؤشر دالة أو كائن دالة فقط.

قيمة الإرجاع

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

رمز المثال

يوضح رمز C ++ هذا استخدام دالة std :: lower_bound () للعثور على العنصر الأول في متجه تم فرزه لا يقل عن قيمة معينة.

# تضمين

int رئيسي ( )

{

// متجه الإدخال

الأمراض المنقولة جنسيا :: المتجه < مزدوج > قيم { 10 و خمسة عشر و عشرين و 25 و 30 } ؛

// طباعة ناقلات

الأمراض المنقولة جنسيا :: كوت << 'يحتوي المتجه على:' ؛

ل ( غير موقعة int أنا = 0 ؛ أنا < قيم. مقاس ( ) ؛ أنا ++ )

الأمراض المنقولة جنسيا :: كوت << '' << قيم [ أنا ] ؛

الأمراض المنقولة جنسيا :: كوت << ' ' ؛

الأمراض المنقولة جنسيا :: المتجه < مزدوج > :: مكرر it1 و it2 و it3 ؛

// الأمراض المنقولة جنسياً :: Lower_bound

it1 = الأمراض المنقولة جنسيا :: الأدنى ( قيم. يبدأ ( ) و قيم. نهاية ( ) و 13 ) ؛

it2 = الأمراض المنقولة جنسيا :: الأدنى ( قيم. يبدأ ( ) و قيم. نهاية ( ) و 23 ) ؛

it3 = الأمراض المنقولة جنسيا :: الأدنى ( قيم. يبدأ ( ) و قيم. نهاية ( ) و 33 ) ؛

الأمراض المنقولة جنسيا :: كوت

<< ' low_bound للعنصر 13 في الموضع: '

<< ( it1 - قيم. يبدأ ( ) ) ؛

الأمراض المنقولة جنسيا :: كوت

<< ' low_bound للعنصر 23 في الموضع: '

<< ( it2 - قيم. يبدأ ( ) ) ؛

الأمراض المنقولة جنسيا :: كوت

<< ' low_bound للعنصر 33 في الموضع: '

<< ( it3 - قيم. يبدأ ( ) ) ؛

يعود 0 ؛

}

يبدأ الكود بتعريف std :: vector لقيم من النوع المزدوج وتهيئته ببعض القيم. ثم يقوم بطباعة عناصر المتجه باستخدام حلقة for.

بعد ذلك ، يعلن الكود عن ثلاثة متغيرات std :: vector :: iterator تسمى it1 و it2 و it3. سيتم استخدام هذه المتغيرات لتخزين نتائج استدعاء std :: lower_bound () على متجه القيم مع وسيطات مختلفة.

تُستدعى الدالة std :: lower_bound () بثلاث قيم مختلفة: 13 و 23 و 33. في كل استدعاء ، تعطي الدالة Lower_bound () مكررًا يشير إلى العنصر الأول في المتجه الذي يكون أكبر من أو يساوي القيمة المحددة.

يقوم الكود بعد ذلك بطباعة مواضع هذه العناصر في المتجه عن طريق طرح القيم.

انتاج |

خاتمة

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