C++ میں Lower_Bound() طریقہ کیا ہے؟

C My Lower Bound Tryq Kya



C++ پروگرامنگ زبان فنکشنز اور طریقوں کی ایک وسیع رینج پیش کرتی ہے جو بڑے پیمانے پر استعمال ہوتے ہیں۔ Lower_bound() طریقہ ایک ایسا فنکشن ہے جو ترتیب شدہ کنٹینر میں دی گئی قدر کی پہلی موجودگی کو تلاش کرنے کے لیے استعمال ہوتا ہے۔ یہ مضمون نحو، پیرامیٹرز، واپسی کی قدروں، اور C++ میں Lower_bound() طریقہ کے لیے ایک مثالی کوڈ کا احاطہ کرتا ہے۔

Lower_bound() طریقہ کیا ہے؟

C++ میں Lower_bound() طریقہ ترتیب شدہ کنٹینر میں دی گئی قدر کی پہلی موجودگی کو تلاش کرتا ہے۔ یہ C++ میں لائبریری کا ایک حصہ ہے اور اسے صفوں، ویکٹرز، اور دوسرے ترتیب شدہ کنٹینرز پر بائنری تلاش کرنے کے لیے استعمال کیا جاتا ہے۔ Lower_bound() طریقہ ایک تکرار کرنے والا لوٹاتا ہے جو کنٹینر کی مخصوص رینج میں پہلے عنصر کی طرف اشارہ کرتا ہے، جو فراہم کردہ قدر سے کم نہیں ہے۔

نحو







C++ میں Lower_bound() طریقہ میں دو تغیرات ہیں: ایک ڈیفالٹ اور ایک حسب ضرورت نحو۔



ڈیفالٹ نحو

پہلے سے طے شدہ نحو ایک ForwardIterator میں لیتا ہے جو بالترتیب تلاش کیے جانے والے رینج کے پہلے اور پچھلے عناصر کی طرف اشارہ کرتا ہے، اور رینج میں عناصر کا موازنہ کرنے کے لیے ایک قدر۔



ForwardIterator low_bound ( ForwardIterator پہلے , ForwardIterator آخری , const ٹی اور val ) ;

حسب ضرورت نحو

حسب ضرورت نحو اضافی طور پر صارف کی وضاحت کردہ بائنری پریڈیکیٹ فنکشن میں لیتا ہے جو عناصر کو ترتیب دینے کے لیے سخت کمزور ترتیب کی پیروی کرتا ہے۔





ForwardIterator low_bound ( ForwardIterator پہلے , ForwardIterator آخری , const ٹی اور val , کمپیئر کا موازنہ کریں۔ ) ;

پیرامیٹرز

C++ میں Lower_bound() طریقہ تین پیرامیٹرز لیتا ہے۔

پہلا آخری: پہلے دو پیرامیٹرز، 'پہلا' اور 'آخری'، اس حد کا تعین کرتے ہیں [پہلا، آخری) جس کے اندر طریقہ نچلی حد کو تلاش کرتا ہے۔ رینج کو دو پیرامیٹرز کے ذریعے متعین کیا گیا ہے، یعنی 'پہلا' اور 'آخری'۔ رینج میں 'پہلے' اور 'آخری' تکرار کنندگان کے درمیان تمام عناصر شامل ہیں لیکن 'آخری' تکرار کنندہ کے ذریعہ اشارہ کردہ عنصر کو خارج کر دیتا ہے۔



val: Lower_bound() طریقہ کے تیسرے پیرامیٹر کو 'val' کہا جاتا ہے۔ یہ نچلی حد کی قدر کی نمائندگی کرتا ہے جسے مخصوص حد کے اندر تلاش کرنے کی ضرورت ہے۔ جب Lower_bound() طریقہ کہا جاتا ہے، تو یہ کنٹینر کی مخصوص رینج کے اندر پہلے عنصر کو تلاش کرتا ہے جو دی گئی قدر 'val' سے زیادہ یا اس کے برابر ہو۔

comp: Lower_bound() طریقہ بائنری موازنہ فنکشن کو اپنے چوتھے پیرامیٹر کے طور پر بھی قبول کر سکتا ہے۔ یہ دو دلائل لیتا ہے: قسم کی طرف سے اشارہ کیا ForwardIterator ، اور دوسرا ہے val . فنکشن پھر دو دلائل کے درمیان موازنہ کی بنیاد پر بولین ویلیو لوٹاتا ہے۔ comp argument اپنے کسی بھی دلیل کو تبدیل نہیں کرتا ہے اور یہ صرف ایک فنکشن پوائنٹر یا فنکشن آبجیکٹ ہوسکتا ہے۔

واپسی کی قیمت

Lower_bound() ایک تکرار کرنے والا لوٹاتا ہے جو پہلے عنصر کی طرف اشارہ کرتا ہے جو اس سے بڑا یا اس کے برابر ہوتا ہے۔ val . اگر کنٹینر کی مخصوص رینج میں تمام عناصر دی گئی قدر سے چھوٹے ہیں۔ val ، low_bound() طریقہ رینج میں آخری عنصر کی طرف اشارہ کرنے والا ایک تکراری لوٹاتا ہے، اور اگر تمام عناصر اس سے زیادہ ہیں val ، یہ ایک تکرار کرنے والا دیتا ہے جو رینج میں پہلے عنصر کی طرف اشارہ کرتا ہے۔

مثال کا کوڈ

یہ C++ کوڈ std::lower_bound() فنکشن کے استعمال کو ظاہر کرتا ہے تاکہ ترتیب شدہ ویکٹر میں پہلا عنصر تلاش کیا جا سکے جو دی گئی قدر سے کم نہ ہو۔

#include

int مرکزی ( )

{

// ان پٹ ویکٹر

std :: ویکٹر < دگنا > اقدار { 10 , پندرہ , بیس , 25 , 30 } ;

// پرنٹ ویکٹر

std :: cout << 'ویکٹر پر مشتمل ہے:' ;

کے لیے ( غیر دستخط شدہ int میں = 0 ; میں < اقدار سائز ( ) ; میں ++ )

std :: cout << ' << اقدار [ میں ] ;

std :: cout << ' \n ' ;

std :: ویکٹر < دگنا >:: تکرار کرنے والا یہ1 , یہ2 , یہ3 ;

// std :: low_bound

یہ1 = std :: low_bound ( اقدار شروع ( ) , اقدار اختتام ( ) , 13 ) ;

یہ2 = std :: low_bound ( اقدار شروع ( ) , اقدار اختتام ( ) , 23 ) ;

یہ3 = std :: low_bound ( اقدار شروع ( ) , اقدار اختتام ( ) , 33 ) ;

std :: cout

<< ' \n پوزیشن پر عنصر 13 کے لیے low_bound: '

<< ( یہ1 - اقدار شروع ( ) ) ;

std :: cout

<< ' \n پوزیشن پر عنصر 23 کے لیے low_bound: '

<< ( یہ2 - اقدار شروع ( ) ) ;

std :: cout

<< ' \n پوزیشن پر عنصر 33 کے لیے low_bound: '

<< ( یہ3 - اقدار شروع ( ) ) ;

واپسی 0 ;

}

کوڈ کا آغاز ایک std:: ویکٹر کی قسم کی ڈبل نام والی اقدار کے ساتھ اور اسے کچھ اقدار کے ساتھ شروع کرنے سے ہوتا ہے۔ یہ پھر لوپ کے لیے ویکٹر کے عناصر کو پرنٹ کرتا ہے۔

اگلا، کوڈ تین std::vector::iterator متغیرات کا اعلان کرتا ہے جس کا نام it1, it2, اور it3 ہے۔ یہ متغیرات مختلف دلائل کے ساتھ ویلیوز ویکٹر پر کالنگ std::lower_bound() کے نتائج کو ذخیرہ کرنے کے لیے استعمال کیے جائیں گے۔

std::lower_bound() فنکشن کو تین مختلف ویلیوز کے ساتھ بلایا جاتا ہے: 13، 23، اور 33۔ ہر کال پر، Lower_bound() ایک ایٹریٹر دیتا ہے جو ویکٹر کے پہلے عنصر کی طرف اشارہ کرتا ہے جو اس سے بڑا یا اس کے برابر ہوتا ہے۔ مخصوص قیمت.

کوڈ پھر std::lower_bound() کے ذریعے واپس آنے والے iterator سے values.begin() iterator کو گھٹا کر ویکٹر میں ان عناصر کی پوزیشن پرنٹ کرتا ہے، جو ویکٹر میں عنصر کا انڈیکس دیتا ہے۔

آؤٹ پٹ

نتیجہ

C++ میں Lower_bound() طریقہ ترتیب شدہ کنٹینر میں دی گئی قدر کی پہلی موجودگی کو تلاش کرتا ہے۔ یہ C++ میں لائبریری کا ایک حصہ ہے اور اسے صفوں، ویکٹرز، اور دوسرے ترتیب شدہ کنٹینرز پر بائنری تلاش کرنے کے لیے استعمال کیا جا سکتا ہے۔ یہ طریقہ ایک ایٹریٹر دیتا ہے جو رینج میں پہلے عنصر کی طرف اشارہ کرتا ہے جو دی گئی قدر سے کم نہیں ہے۔ اس مضمون میں low_bound() طریقہ کے بارے میں مزید پڑھیں۔