C++ میں Upper_bound() فنکشن کا استعمال کیسے کریں۔

C My Upper Bound Fnkshn Ka Ast Mal Kys Kry



مختلف قسم کے پروگرام، بشمول گیمز، گرافکس، ویب سرورز، اور بہت کچھ، C++ پروگرامنگ زبان کا استعمال کرتے ہوئے بنائے جا سکتے ہیں۔ تاہم، بعض اوقات ہمیں اپنے پروگراموں میں ڈیٹا پر کچھ آپریشن کرنے کی ضرورت پڑ سکتی ہے، جیسے کہ تلاش کرنا، چھانٹنا، یا عناصر کی ایک رینج کے درمیان زیادہ سے زیادہ یا کم سے کم قدر تلاش کرنا۔ عناصر کی ترتیب شدہ رینج میں کسی قدر کی اوپری باؤنڈ تلاش کرنے کے لیے استعمال کیے جانے والے فنکشنز میں سے ایک ہے upper_bound()۔

C++ میں upper_bound() فنکشن کیا ہے۔

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







اس کے دلائل کی دو مختلف قسمیں ہیں:



نمبر اوپری_باؤنڈ ( ایک پر. پہلا ، ایک پر. آخری ، قدر )

تکرار کرنے والے جو عناصر کی جانچ پڑتال کی حد کی وضاحت کرتے ہیں وہ پہلے اور آخری ہیں۔ استعمال شدہ وقفہ پہلے عنصر سے آخر تک تمام عناصر پر مشتمل ہوتا ہے لیکن اس میں وہ عنصر شامل نہیں ہوتا ہے جس کی طرف آخری اشارہ کیا گیا ہے۔ قدر وہ قدر ہے جس سے عناصر کا موازنہ کیا جائے۔



نمبر اوپری_باؤنڈ ( ایک پر. پہلا ، ایک پر. آخری , value, compare comp )

اس صورت میں، بائنری فنکشن کمپ ایک ایسی قدر پیدا کرتا ہے جسے بول میں تبدیل کیا جا سکتا ہے اور رینج کے آئٹمز کی طرح ایک ہی قسم کے دو پیرامیٹرز کو قبول کرتا ہے۔ اگر کوئی خاص شرط یہ بتاتی ہے کہ پہلی دلیل دوسری دلیل سے زیادہ نہیں ہے، تو فنکشن کو صحیح نتیجہ لوٹانا چاہیے اور اگر نہیں، تو اسے غلط لوٹنا چاہیے۔





C++ میں upper_bound() فنکشن کا استعمال کیسے کریں۔

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

مثال 1: ترتیب شدہ صف میں کسی عنصر کی پوزیشن تلاش کرنے کے لیے upper_bound() فنکشن کا استعمال

یہ ایک مثال ہے، جو عدد کی ترتیب شدہ صف میں کسی عنصر کی پوزیشن تلاش کرنے اور اسے اسکرین پر ڈسپلے کرنے کے لیے upper_bound() فنکشن کا استعمال کرتی ہے۔



# شامل کریں

#include

استعمال کرتے ہوئے نام کی جگہ std ;

int مرکزی ( )

{

int صف [ ] = { پندرہ ، 35 ، چار پانچ ، 55 ، 65 } ;

int a = کا سائز ( صف ) / کا سائز ( صف [ 0 ] ) ;

cout << 'صفی پر مشتمل ہے:' ;

کے لیے ( int میں = 0 ; میں < a ; میں ++ )

cout << صف [ میں ] << ' ;

cout << ' \n ' ;

int ب = چار پانچ ; // ایک قدر کا اعلان اور آغاز کریں۔

int * ص = اوپری حد ( صف، صف + a، b ) ;

cout << 'کی اوپری حد' << ب << 'پوزیشن پر ہے:' << ( ص - صف ) << ' \n ' ; // پوائنٹر ریاضی کا استعمال کرتے ہوئے پوزیشن کو ظاہر کریں۔

واپسی 0 ;

}

پہلے پروگرام ضروری ہیڈر فائلوں اور نمبروں پر مشتمل صف کی وضاحت کرتا ہے اور پھر صف کا سائز حاصل کرنے کے لیے sizeof() فنکشن کا استعمال کرتا ہے۔ اگلا a for loop ارے کے عناصر کو ظاہر کرنے کے لیے استعمال کیا جاتا ہے اور پھر ایک عدد کا اعلان کیا جاتا ہے جس کی صف میں پوزیشن کا تعین پوائنٹر کے ذریعے کیا جاتا ہے اور یہ آؤٹ پٹ میں ظاہر ہوتا ہے:

مثال 2: ایک سیٹ میں اگلا بڑا عنصر تلاش کرنے کے لیے upper_bound() فنکشن کا استعمال

یہ ایک مثالی کوڈ ہے جو upper_bound() فنکشن کو عدد کے سیٹ میں دی گئی قدر سے اگلا بڑا عنصر تلاش کرنے اور اسے اسکرین پر ڈسپلے کرنے کے لیے استعمال کرتا ہے۔

# شامل کریں

#include

#شامل <ویکٹر>

استعمال کرتے ہوئے نام کی جگہ std ;

int مرکزی ( )

{

سیٹ < int > ایک پر = { پندرہ ، 25 ، 35 ، چار پانچ ، 55 } ; // انٹیجرز کے سیٹ کا اعلان اور آغاز کریں۔

cout << 'دیئے گئے نمبر:' ;

کے لیے ( آٹو a : ایک پر ) // رینج بیسڈ فار لوپ کا استعمال کرتے ہوئے سیٹ عناصر کو ڈسپلے کریں۔

cout << a << ' ;

cout << ' \n ' ;

int a = چار پانچ ; // ایک قدر کا اعلان اور آغاز کریں۔

آٹو یہ = اوپری حد ( ایک پر. شروع ( ) ، ایک پر. اختتام ( ) , a ) ; // upper_bound() کا استعمال کرتے ہوئے سیٹ میں x کی اوپری حد تلاش کریں

اگر ( یہ ! = ایک پر. اختتام ( ) ) // چیک کریں کہ آیا ایٹریٹر درست ہے۔

cout << 'اس سے اگلا بڑا نمبر' << a << 'ہے' << * یہ << ' \n ' ; // dereference آپریٹر کا استعمال کرتے ہوئے عنصر کو ظاہر کریں۔

اور

cout << 'اس سے بڑا کوئی نمبر نہیں ہے' << a << ' \n ' ; // ایک پیغام دکھائیں اگر ایسا کوئی عنصر نہیں ملتا ہے۔

واپسی 0 ;

}

سب سے پہلے کوڈ ضروری ہیڈر فائلوں کی وضاحت کرتا ہے اور پھر پانچ عناصر کے ویکٹر کی وضاحت کی جاتی ہے، اس کے بعد ویکٹر آٹو کی ورڈ کا استعمال کرتے ہوئے ظاہر ہوتا ہے کیونکہ یہ عناصر کے ڈیٹا کی قسم کو خود بخود سیٹ کر سکتا ہے۔ اس کے بعد ایک متغیر کا اعلان کیا جاتا ہے جس کی قدر 45 ہوتی ہے جس کا موازنہ اوپری_باؤنڈ() فنکشن کا استعمال کرتے ہوئے بیان کردہ ویکٹر سے کیا جاتا ہے اور اس کے بعد یہ موازنہ کا نتیجہ دکھاتا ہے:

نتیجہ

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