ما هي طريقة Lower_bound ()؟
تعثر طريقة Lower_bound () في C ++ على التواجد الأول لقيمة معينة في حاوية مرتبة. إنه جزء من مكتبة
بناء الجملة
يحتوي أسلوب 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
تُستدعى الدالة std :: lower_bound () بثلاث قيم مختلفة: 13 و 23 و 33. في كل استدعاء ، تعطي الدالة Lower_bound () مكررًا يشير إلى العنصر الأول في المتجه الذي يكون أكبر من أو يساوي القيمة المحددة.
يقوم الكود بعد ذلك بطباعة مواضع هذه العناصر في المتجه عن طريق طرح القيم.
انتاج |
خاتمة
تعثر طريقة Lower_bound () في C ++ على التواجد الأول لقيمة معينة في حاوية مرتبة. إنه جزء من مكتبة <الخوارزمية> في C ++ ويمكن استخدامه لإجراء عمليات بحث ثنائية على المصفوفات والمتجهات والحاويات المصنفة الأخرى. تعطي الطريقة مكررًا يشير إلى العنصر الأول في نطاق لا يقل عن القيمة المحددة. اقرأ المزيد عن طريقة Lower_bound () في هذه المقالة.