C ++ میں ترجیحی قطار کو کیسے نافذ کریں



یہ مضمون آپ کو تفصیلی اور جامع معلومات فراہم کرے گا کہ مثالوں کے ساتھ C ++ میں کس طرح ترجیحی قطار لگائیں۔

ترجیحی قطار STL میں ایک کنٹینر ہے۔ یہ قطار کے مترادف ہے سوائے اس حقیقت کے کہ ترجیحی قطار کے ہر عنصر کی کچھ ترجیح ہوتی ہے اور جب ہم عناصر کو ترجیحی قطار سے پاپ کرتے ہیں تو سب سے زیادہ ترجیح والے عناصر پہلے پاپ ہوجاتے ہیں۔ ترجیحی قطار کی طرح ، میں بھی 10 مختلف قسم کے کنٹینر موجود ہیں ایس ٹی ایل . کنٹینر وہ چیز ہے جو ڈیٹا کو اسٹور کرتی ہے۔ ایس ٹی ایل کنٹینرز کو ٹیمپلیٹ کلاسوں کی مدد سے نافذ کیا جاتا ہے لہذا اس کو مختلف قسم کے ڈیٹا رکھنے کے ل custom اپنی مرضی کے مطابق بنانا آسان ہے۔ اس پوسٹ میں ، ہم ترجیحی قطار اور اس سے متعلق تصورات پر تفصیل سے بات کریں گے۔ مندرجہ ذیل نکات C ++ مضمون میں اس ترجیحی قطار میں شامل ہوں گے ،

C ++ میں ترجیحی قطار پر اس مضمون کے ساتھ آگے بڑھ رہے ہیں





ایس ٹی ایل کے اجزاء

ایس ٹی ایل ٹیمپلیٹ کلاسز اور افعال پر مشتمل ہے جو ڈیٹا کو اسٹور کرنے اور پروسیسنگ کرنے کے لئے ایک معیاری نقطہ نظر کے طور پر استعمال کیا جاسکتا ہے۔ آئیے STL کے اجزاء پر تبادلہ خیال کریں

کنٹینرز- ایس ٹی ایل میں 10 اقسام کے کنٹینر متعین ہیں اور ان کو 3 زمروں میں گروپ کیا گیا ہے۔ ان 3 میں سے ، ترجیحی قطار اخذ کنٹینر کے زمرے سے تعلق رکھتی ہے۔ ہر کنٹینر کلاس کے اپنے فنکشنز کا ایک سیٹ ہوتا ہے جو ڈیٹا کو جوڑنے میں استعمال ہوتا ہے۔



الگورتھم - الگورتھم ایک طریقہ ہے جو کنٹینر آبجیکٹ میں موجود ڈیٹا پر کارروائی کرنے کے لئے استعمال ہوتا ہے۔ ایس ٹی ایل مختلف قسم کی الگورتھم مہیا کرتا ہے جس کو ابتدا ، تلاش ، چھنٹائی ، ضم ، کاپی میں استعمال کیا جاسکتا ہے۔ الگورتھم کو ٹیمپلیٹ کے افعال کی مدد سے نافذ کیا جاتا ہے۔

Iterator- ایٹریٹر وہ شے ہے جو کنٹینر میں موجود عنصر کی طرف اشارہ کرتی ہے۔ Iteilers کنٹینر کے مندرجات کو منتقل کرنے میں استعمال میں مدد کرسکتے ہیں۔ اشتہاری اشارے کی طرح ہوتے ہیں جس میں اضافہ اور گھٹایا جاسکتا ہے۔ یہ الگورتھم اور کنٹینر کے مابین ایک لنک کی حیثیت سے کام کرتا ہے۔ Iteilers ایک کنٹینر میں محفوظ ڈیٹا جوڑتوڑ کے لئے استعمال کیا جاتا ہے.

C ++ میں ترجیحی قطار پر اس مضمون کے ساتھ آگے بڑھ رہے ہیں



ڈھیر اور ترجیحی قطار

جیسا کہ ہم نے دیکھا کہ ترجیحی قطار اخذ کنٹینرز کے زمرے سے تعلق رکھتی ہے۔ اس زمرے کے دیگر ممبران اسٹیک اور قطار ہیں۔ یہ اخذ کنٹینرز کنٹینر اڈیپٹر کے نام سے بھی جانا جاتا ہے۔

اسٹیک ، قطار اور ترجیحی قطار اخذ کنٹینرز کے نام سے جانا جاتا ہے کیونکہ وہ مختلف ترتیب کنٹینر سے بنی ہیں۔ یہ کنٹینر کسی بھی قسم کے تکرار کرنے والے کی حمایت نہیں کرتے ہیں جن کا استعمال ڈیٹا ہیرا پھیری کے ل. نہیں کیا جاتا ہے۔

ترجیحی قطار قطعیت کیا ہے؟

آسان الفاظ میں ، یہ ایک کنٹینر ہے جسے ہم ڈیٹا اسٹور کرتے تھے۔ ذخیرہ شدہ ڈیٹا کے ہر عنصر کو کچھ ترجیح دی گئی ہے جو اعداد و شمار کو منطقی ترتیب میں محفوظ کرنے میں ہماری مدد کرسکتی ہے۔
نحو:ترجیح_کیueو متغیر_ نام

ترجیحی قطار کو استعمال کرنے کے لئے پروگرام میں ہیڈر فائل کو شامل کرنا ضروری ہے۔

C ++ میں ترجیحی قطارمثال کے طور پر ، اگر ہم پش فنکشن کا استعمال کرتے ہوئے اپنی ترجیحی قطار میں 2 ، 10 ، 30 ، 5 ، 6 شامل کریں اور پھر پاپ فنکشن کا استعمال کرتے ہوئے عناصر کو پاپ کریں تو آؤٹ پٹ 30 ، 10 ، 6 ، 5 ، 2 ہوگا۔

ٹھیک ہے ، لہذا اب ہم جانتے ہیں کہ مقصد یا ترجیحی قطار کا استعمال۔ لیکن یہ کیسے معلوم ہوگا کہ اگر 30> 10؟ کیا یہ کسی طرح کی چھانٹ رہا ہے؟ اس وقت ڈھیریں تصویر میں آتی ہیں۔ تفصیل سے ڈھیروں کے بارے میں جاننے کے لئے اس مضمون کا حوالہ دیں۔

ڈھیر - ڈھیر درخت کی طرح ڈھانچے ہیں۔ والدین کے نوڈس کے سلسلے میں بچوں کے عنصر نوڈس کو ڈھیروں میں کیسے ترتیب دیا جاتا ہے اس کی بنیاد پر ، ڈھیروں کو 2 حصوں میں تقسیم کردیا گیا ہے

ایک کم سے کم ڈھیر- من ہیپ میں ، پیرنٹ نوڈ کی قدر چائلڈ نوڈس کی قدر سے کم یا اس کے برابر ہوتی ہے۔

2 زیادہ سے زیادہ ڈھیر- میکس ہیپ میں ، پیرنٹ نوڈ کی قدر چائلڈ نوڈس کی قدر سے زیادہ یا اس کے برابر ہوتی ہے۔

نوٹ- ترجیحی قطار کچھ چھنٹائی کرنے والے الگورتھم کا استعمال کرکے عناصر کو ترتیب نہیں دیتی ہے اس کے بجائے اس نے ڈیٹا کو ڈھیر کی شکل میں محفوظ کیا۔

C ++ میں ترجیحی قطار پر اس مضمون کے ساتھ آگے بڑھ رہے ہیں

ترجیحی قطار کے تمام عناصر کو چھپانا

ترجیحی قطار کے بنیادی اصولوں کو سمجھنے کے بعد ، آئیے ترجیحی قطار کے ساتھ عام طور پر استعمال ہونے والے طریقوں کو سمجھنے کے لئے پروگراموں کو نافذ کریں

# شامل کریں # نام کی جگہ کا استعمال کرتے ہوئے ایس ڈی انٹ مین () {ترجیح_کیئue پری_ق پری_ق.پش (10) پریئر_ کیو پش (30) پریئر_ق.پش (6) پریئر_ق.پش (2) پریئر_ق.پش (15) پریئر_ق.پش (7) جبکہ (ترجیح_قائد. () == غلط) out کوٹ<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

آؤٹ پٹ:

30 15 10 9 6 2

مذکورہ پروگرام میں ، ہم نے ترجیحی قطار سے نمٹنے کے دوران پاپ () ، ٹاپ () اور پش () افعال استعمال کیے جو اکثر اوقات استعمال ہوتے ہیں۔ آئیے کچھ طریقوں پر ایک نظر ڈالتے ہیں جن کو ہم ترجیحی قطار کے ساتھ استعمال کرسکتے ہیں

سائز (): یہ فنکشن ترجیحی قطار کا سائز لوٹاتا ہے

خالی (): اس فنکشن کا استعمال یہ چیک کرنے کے لئے کیا جاتا ہے کہ ترجیحی قطار خالی ہے یا نہیں۔ اس کی واپسی ترجیحی قطار خالی ہے۔

() دبائیں: ترجیحی قطار میں عنصر داخل کرتا ہے۔

پاپ (): یہ فنکشن ترجیحی قطار کے اوپری عنصر کو ہٹاتا ہے جو عنصر ہے جس میں اعلی ترجیح ہے۔

تبادلہ (): یہ فنکشن ترجیحی قطار کے عناصر کو ایک اور ترجیحی قطار کے ساتھ بدل دیتا ہے۔ فنکشن پیرامیٹر کے طور پر ترجیحی قطار لیتا ہے۔

ایمپلیس (): یہ فنکشن کسی عنصر کو ترجیحی قطار کے اوپری حصے میں شامل کرنے کے لئے استعمال ہوتا ہے۔

آئیے ایک اور پروگرام دیکھیں۔

# شامل کریں # نام کی جگہ کا استعمال کرتے ہوئے ایس ڈی انٹ مین () {ترجیح_کیئue پری_ق پری_ق.پش (10) پریئر_ کیو پش (30) پریئر_ق.پش (6) پریئر_ق.پش (2) پریئر_ق.پش (15) پریئر_ق.پش (7) جبکہ (ترجیح_قائد. () == غلط) out کوٹ<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

آؤٹ پٹ:

2 6 7 9 10 15 30

سرنی جاوا میں سب سے بڑی تعداد تلاش کرنا

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

ہمارے لئے ایک سوال ہے؟ برائے کرم اس بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد سے جلد آپ کے پاس مل جائیں گے۔